繁体   English   中英

Python在带有numpy数组数据的for循环中附加一个列表

[英]Python appending a list in a for loop with numpy array data

我正在编写一个程序,它将附加一个列表,其中包含从2维numpy数组中提取的单个元素。 到目前为止,我有:

# For loop to get correlation data of selected (x,y) pixel for all bands
zdata = []
for n in d.bands:
    cor_xy = np.array(d.bands[n])
    zdata.append(cor_xy[y,x])

每次运行程序时,都会出现以下错误:

Traceback (most recent call last):
    File "/home/sdelgadi/scr/plot_pixel_data.py", line 36, in <module>
        cor_xy = np.array(d.bands[n])
TypeError: only integer arrays with one element can be converted to an index

当我在不使用循环的情况下从python解释器中尝试它时,我的方法有效,即

>>> zdata = []
>>> a = np.array(d.bands[0])     
>>> zdata.append(a[y,x])
>>> a = np.array(d.bands[1])
>>> zdata.append(a[y,x])
>>> print(zdata)
[0.59056658, 0.58640128]

创建一个for循环并手动执行此操作有什么不同,以及如何让我的循环停止导致错误?

当它是d.bands的一个元素时,你将n视为d.bands的索引

zdata = []
for n in d.bands:
    cor_xy = np.array(n)
    zdata.append(cor_xy[y,x])

你说a = np.array(d.bands[0])有效。 第一个n应该与d.bands[0]完全相同。 如果是这样,那么np.array(n)就是你所需要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM