假設您想要將 NumPy 數組子集fridge_items化為評分高于 7 的美味食物行。most_tasty_items = fridge_items[:,10] > 7)你得到一個布爾值數組。如果你當時做了:fridge_items[most_tasty_items,:][:3,:]當您索引到 fridge_items 時,這里到底發生了什么。我熟悉做 array[1,2] 并返回給定行和列的內容。由于most_tasty_items是布爾值的一維數組,我們如何使用[:3,:]? 如果它只是一個一維數組,我們可以直接說 [:]。不太明白這個,為什么我們把:第二個參數給[most_tasty_items,:]
1 回答

人到中年有點甜
TA貢獻1895條經驗 獲得超7個贊
當您使用兩對括號尋址數據時,您將執行兩個操作,第一個括號從數據中選擇一個新數組,第二個括號尋址新數組。
In [71]: np.random.seed(2020)
...: fridge = np.random.randint(11, size=(30, 5))
...: tasty = fridge_items[:,4] > 7
...: tastyfridge = fridge[tasty,:]
In [72]: tastyfridge[:2,:], fridge[tasty][:2,:]
Out[72]:
(array([[ 8, 10, 9, 3, 7],
[ 4, 7, 1, 4, 9]]),
array([[ 8, 10, 9, 3, 7],
[ 4, 7, 1, 4, 9]]))
In [73]:
添加回答
舉報
0/150
提交
取消