我有一个关于在 numpy 数组中获取元素并在循环中调整其大小的问题。
基本问题是我有一个格式为 (x,y) 的时间序列,其中一些元素缺少 y 值,因此它们被读入程序的长度为 1。
即:[x,y] [x,y] [x] [x,y]
所以我需要把这些偶尔的点调整为标准(1,2)(然后根据分布生成一个点,但这不是问题)。我知道 numpy.resize 函数,但是当我尝试时:
for element in list:
if len(element)==1:
element=n.resize(element,(1,2))
它在循环范围内工作,但如果我打印列表,所有元素都与循环从未发生过一样。resize 函数返回一个数组,所以我很困惑为什么将列表的元素设置为等于该数组不起作用。
编辑:我找到了一个使用常规 python 列表的简单解决方案:
for element in list:
if len(element)==1:
element.append(0)
但是我仍然很好奇为什么上面的方法不起作用,因为当然可以设置一个等于某物的元素。或者你只能设置 element[i] 等于 [1,x] 数组中的某个值吗?