【发布时间】:2020-06-05 22:27:42
【问题描述】:
如何找到我的数组的行(索引),它的值在哪里发生变化?
例如我有一个数组:
0 -0.638127 0.805294 1.30671
1 -0.638127 0.805294 1.30671
2 -0.085362 0.523378 0.550509
3 -0.085362 0.523378 0.550509
4 -0.323397 0.94502 0.49001
5 -0.323397 0.94502 0.49001
6 -0.323397 0.94502 0.49001
7 -0.291798 0.421398 0.962115
我想要这样的结果:
[0 2 4 7]
我很乐意使用现有的库,而且我不限于任何东西。我想要的只是行数。我该如何计算?
我试过了
a = []
for i, row in enumerate(vecarray):
if i > 0:
a[i] = vecarray[i] - vecarray[i-1]
b = np.where(a != 0)
但这给了我IndexError: list assignment index out of range
【问题讨论】:
-
数组?为什么它有索引?你的意思是熊猫数据框?
-
np.nonzero(arr[1:] - arr[:-1] != 0) -
您是否尝试编写一个循环,将当前行与前一行进行比较,如果值不同,则将当前索引添加到结果列表中?
-
@mkrieger1 不,那段代码是什么样子的?
-
我不知道如何处理上一行。如果我写 ' for row in array:' 我如何处理前一行?
标签: python