簡體   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