检查numpy数组行是否小于下一行

时间:2018-02-25 20:30:36

标签: python python-3.x numpy

假设我有以下数组:

In [1]: k
Out[1]: 
array([[0],
       [1],
       [2],
       [7],
       [4],
       [5],
       [6]])

我想检查k的每一行是否小于下一行。

我尝试了以下但是没有用:

In [2]: k[:,0]<k[:+1,0]
Out[2]: array([False, False, False, False, False, False, False], dtype=bool)

我在这里缺少什么?

2 个答案:

答案 0 :(得分:2)

k[:+1,0]表示"from 0 to +1",只有一个元素。你需要:

k[:-1, 0] < k[1:, 0] 

答案 1 :(得分:2)

您还可以沿轴0使用np.diff并检查结果是否大于0.

arr = np.array([[0],
                [1],
                [2],
                [7],
                [4],
                [5],
                [6]])
np.diff(arr, axis=0) > 0

array([[ True],  1 > 0
       [ True],  2 > 1
       [ True],  7 > 2
       [False],  4 > 7
       [ True],  5 > 4
       [ True]]) 6 > 5

[6]后面没有行,因此结果会缩短一行。