我已经查看了关于获取数组的每个第n项的许多帖子,并且我使用该方法来切割偶数和奇数索引。但是,我最终为最终对象添加了一个空数组。有什么建议吗?
floc1
是一个数组,我想从每个偶数元素中减去每个奇数元素:
period = abs(floc1[0::2] - floc1[1::2])
目前这给了我一个空数组。
编辑:
我已经尝试了以下评论中建议的所有内容。唯一产生不同错误的是:
period = [i-j for i, j in zip(floc1[0::2], floc1[1::2])]
这给出了:
Phi12 = ((tau)/(period))
ValueError: operands could not be broadcast together with shapes (1,8208) (0,)
参考:
Phi12 = ((tau)/(period))
同样,floc1
绝对不是一个空数组。我将其保存到文本文件中进行确认。
答案 0 :(得分:2)
如果floc1
是list
(人们经常称之为"数组"),那么您的示例会出错。对于list
,您可以这样做。
>>> floc1 = [11, 5, 6, 2]
>>> it = iter(floc1)
>>> [x - next(it) for x in it]
[6, 4]
如果您愿意,请查看@ wenzul的答案,也可以使用zip
如果floc1
是numpy.array - 你已经有效了
>>> import numpy as np
>>> floc1 = np.array([11, 5, 6, 2])
>>> abs(floc1[0::2] - floc1[1::2])
array([6, 4])
也许你的floc1
实际上是一个空数组
答案 1 :(得分:0)
无法正常工作。 你需要做那个元素。
>>> for i, k in zip(floc1[0::2], floc1[1::2]):
... print abs(i-k)
另请查看this。