我有一个2 d numpy数组。我需要保留在特定列的值大于某个数字的所有行。现在,我有:
f_left = np.where(f_sorted[:,attribute] >= split_point)
它失败了:"Index Error: too many indices for array"
我该怎么做?我无法从numpy网站here
中找到答案答案 0 :(得分:3)
x = np.array([[2,3,4],[5,6,7],[1,2,3],[8,9,10]])
array([[ 2, 3, 4],
[ 5, 6, 7],
[ 1, 2, 3],
[ 8, 9, 10]])
找到第二个元素为>=4
x[np.where(x[:,1] >= 4)]
array([[ 5, 6, 7],
[ 8, 9, 10]])
答案 1 :(得分:3)
你实际上甚至不需要在哪里。
yy = np.array(range(12)).reshape((4,3))
yy[yy[:,1] > 2]
array([[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])