我正在编写一个程序,该程序将追加从二维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
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循环并手动执行此操作有何不同?如何使我的循环停止导致错误?
解决方法:
您将n视为d.band的元素时将其视为d.band的索引
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).
标签:python-3-x,typeerror,arrays,python,numpy