【发布时间】:2021-02-03 10:41:27
【问题描述】:
有没有办法在不合并的情况下对 numpy 数组中的每个列表执行类似的操作?:
for item, nextItem in zip(list,list[1::]):
我的 numpy 数组:
for i in range(0, len(list1), lines):
array1 = np.array(list1[i:i+lines])
样本输出:
['23' '23' '23' '23']
['43' '43' '63' '43']
['43' '43' '43' '43']
我想单步执行 numpy 数组,比较每个列表中的 item/nextItem 而不合并它们? Zip 在常规列表中为我工作:
for item, nextItem in zip(list,list[1::]):
if item != nextItem:
#do stuff
提前致谢。任何见解将不胜感激。
【问题讨论】:
-
使用 numpy arr[:-1] != arr[1:] 返回一个布尔列表,如果 arr 中的连续项不同,则返回 True。 np.where( arr[:-1] != arr[:1] ) 返回 True 的索引的 np.array。你需要做什么样的处理?
-
对于像这样的迭代处理,列表可能会更快,也更容易。
-
感谢您为我指明正确的方向...尝试计数和删除连续重复项,保持相同数量的列表。样本结果应该是:[23] [43,63,43] [43]
标签: python arrays list numpy zip