假设您想要将 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
提交
取消