我一直在尝试使用此代码更新两个列表,其中numpy已导入为np
,其中spkCount是一个包含1.0
或0.0
的8 x 10 numpy数组:
mSpikes = []
stdSpikes = []
for line in spkCount:
if line[10:-1].all() == 0:
sample = line[0:9]
else:
sample = line
m = np.mean(sample)
std = np.std(sample)
mSpikes.append(m)
stdSpikes.append(std)
当我检查mSpikes
和stdSpikes
时,我发现它们包含以下数据:
In [52]: stdSpikes
Out[52]: [3.2317865716108862]
In [53]: mSpikes
Out[53]: [53.333333333333336]
任何人都可以解释为什么会这样,并提出一个行动方案吗?谢谢。
编辑:我应该提一下,我检查了for循环是否正确迭代,确实如此。 if / else语句也按预期处理。问题确实似乎与list.append ...
的numpy交互有关答案 0 :(得分:5)
.append()
不会覆盖其操作的列表。您的循环似乎更有可能只运行一次,或者与其余代码分开运行。
答案 1 :(得分:0)
我相信你的问题只涉及mSpikes
只有一个元素,每次迭代都要执行。 appand()
确实附加到列表中,它不会超出之前的值。我建议检查spkCount
- 这应该是一个范围,也许它只包含一个项目。