[英]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.