gpt4 book ai didi

python - 查找元素改变值的索引 numpy

转载 作者:行者123 更新时间:2023-12-02 22:36:04 26 4
gpt4 key购买 nike

假设我有

>>> v
array([1, 1, 1, 1, 1, 2, 2, 2, 3, 4, 3, 4, 3, 4, 3, 4, 5, 5, 5])

是否有一种有效的 numpy 方法来查找值发生变化的每个索引?例如,我想要一些结果,例如,

>>> index_of_changed_values(v)
[0, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16]

如果某些 numpy 例程无法做到这一点,那么在 python 中有什么快速的方法可以做到这一点?因为我是一个 numpy 初学者,所以引用一些好的 numpy 教程对我来说也很有用。

最佳答案

您可以通过将每个元素与其邻居进行比较来在 numpy 中获得此功能;

v[:-1] != v[1:]


array([False, False, False, False, True, False, False, True, True,
True, True, True, True, True, True, True, False, False], dtype=bool)

要获取索引,请使用“where”函数

np.where(v[:-1] != v[1:])[0]

array([ 4, 7, 8, 9, 10, 11, 12, 13, 14, 15])

从这里,您可以在第一个元素前面添加一个元素,以获得与问题中相同的索引方案。

关于python - 查找元素改变值的索引 numpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19125661/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com