当前位置:  开发笔记 > 编程语言 > 正文

获取numpy 1d数组的索引,其中value大于前一个元素

如何解决《获取numpy1d数组的索引,其中value大于前一个元素》经验,为你挑选了1个好方法。

假设我生成了1d numpy数组:

r=np.random.randint(0,10,(10,))

给予,例如:

array([1, 5, 6, 7, 7, 8, 8, 0, 2, 7])

我可以找到元素大于前一个(左边的元素)的索引,如下所示:

for x in range(r.shape[0]):
    if r[x]>r[x-1]:
        p[x]=1
    else:
        p[x]=0
np.where(p==1)[0]

赠送:

array([1, 2, 3, 5, 8, 9])

有没有更好的方法呢?



1> Ashwini Chau..:

你可以用numpy.diffnumpy.where:

>>> arr = np.array([1, 5, 6, 7, 7, 8, 8, 0, 2, 7])
>>> np.where(np.diff(arr) > 0)[0] + 1
array([1, 2, 3, 5, 8, 9])


我会对+1的原因发表评论.一见钟情(或第二个6个月后)可能不明显
推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有