Numpy在哪里为二维数组

时间:2016-02-19 01:29:44

标签: python arrays numpy

我有一个2 d numpy数组。我需要保留在特定列的值大于某个数字的所有行。现在,我有:

f_left = np.where(f_sorted[:,attribute] >= split_point)

它失败了:"Index Error: too many indices for array"

我该怎么做?我无法从numpy网站here

中找到答案

2 个答案:

答案 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]])