过滤Numpy数组中大于前一个值的值

zsohkypk  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(96)

给定以下数组,我如何过滤以生成一个新数组,该数组包含的值至少小于下一个值3?
换句话说,我需要将每个值与右边的相邻值进行比较,如果该相邻值高出3或更多,则将其添加到新数组中。

ex_arr = [1, 2, 3, 8, 9, 10, 12, 16, 17, 23]

desired_arr = [3, 12, 17]

字符串

jm81lzqq

jm81lzqq1#

使用diff来比较连续的值并形成一个布尔掩码,向这个数组添加一个False(使用np.r_)来解释最后一个值并执行布尔索引:

ex_arr = np.array([1, 2, 3, 8, 9, 10, 12, 16, 17, 23])

desired_arr = ex_arr[np.r_[np.diff(ex_arr)>=3, False]]

字符串
或者使用numpy.nonzero

desired_arr = ex_arr[np.nonzero(np.diff(ex_arr)>=3)[0]]


输出:array([ 3, 12, 17])

相关问题