假设我有以下数组:
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)
我在这里缺少什么?
答案 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]
后面没有行,因此结果会缩短一行。