【发布时间】:2018-08-28 12:18:21
【问题描述】:
我有一个 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 方式来做到这一点?
【问题讨论】:
-
玩
n1[1:,:]-n1[:-1,:],连续行之间的区别。 -
嗨@hpaulj,谢谢。通过分配一个仅包含
n1的第0 列的新数组n2,并使用您的建议,我构建了np.where(n2[1:]-n2[:-1] < 0),它给了我(array([3, 5]),),而不是array([4, 6]) -
where给出一个元组,每个条件维度一个元素。您的案例是 1d,因此结果是 1 个元素的元组。