Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 查找超过numpy数组中以前值的值的索引_Python_Numpy - Fatal编程技术网

Python 查找超过numpy数组中以前值的值的索引

Python 查找超过numpy数组中以前值的值的索引,python,numpy,Python,Numpy,我有一个numpy阵列: >>> n1 = np.array([[1, 4], [1, 5], [2, 4], [7, 2], [1, 3], [4, 7], [2, 9]]) >>> n1 array([[1, 4], [1, 5], [2, 4], [7, 2], [1, 3], [4, 7], [2, 9]]) 我正在寻找一种方法,在大于它的值出现之后的第一列中找到值出

我有一个numpy阵列:

>>> n1 = np.array([[1, 4], [1, 5], [2, 4], [7, 2], [1, 3], [4, 7], [2, 9]])
>>> n1
array([[1, 4],
       [1, 5],
       [2, 4],
       [7, 2],
       [1, 3],
       [4, 7],
       [2, 9]])
我正在寻找一种方法,在大于它的值出现之后的第一列中找到值出现的索引。在这种情况下,我希望:

array([4, 6])
因为值1小于7,值2小于4(全部在列0中)


有一种很好的Pythonic方法吗?

您可以在第一列中使用
numpy.diff
,找到负值的位置

np.where(np.diff(n1[:,0])<0)


添加
1
以根据需要调整索引。

播放
n1[1:,:]-n1[:-1,:]
,连续行之间的差异。您好,谢谢。通过分配一个新数组
n2
,该数组只包含
n1
的第0列,并使用您的建议,我构建了
np.where(n2[1:]-n2[:-1]<0)
,它给了我
(数组([3,5]),
,而不是
数组([4,6])
其中
给出了一个元组,即条件的每个维度一个元素。您的案例是1d,因此结果是一个1元素元组。感谢@busybear,这给了我
(数组([3,5]),
,这不是我想要的(当然我承认您说过使用1来调整索引),您是否在寻找不需要添加1的解决方案?这似乎是一个微不足道的步骤。这有点迂腐。不过,对于正在寻找的任何人,请执行以下操作:
n2=np.where(np.diff(n1[:,0])<0)
,然后
n3=np.sum(n2,1)
,它将根据需要获取数组([4,6])