我想補充一些numpy的陣列到一個數組,我的代碼如下所示:追加列表元素的symarray
m1=symarray('', 2)
for i in range(0,len(countersum)):
if countersum[i]==1:
m1.append(gmcounter[i])
這給錯誤
AttributeError: 'numpy.ndarray' object has no attribute 'append'
我也試圖改變追加到vstack但它給出了相同的錯誤
如果我修改最後一行有m1 = gcounter [i]它的工作原理,但只選擇滿足條件的gcounter的第一個元素,並忽略所有事後秒。
有誰知道我該如何解決這個問題?
我已經看到線程Append a NumPy array to a NumPy array但我無法事先聲明我需要作爲numpy數組追加。
非常感謝
您不能修改numpy的數組的大小。你**必須**創建一個新的更大的陣列。當你想要矢量化操作時應該使用numpy;它不是一個神奇的庫,它可以加速序列的操作,而不管它們是什麼。如果你想要可變大小的數組,使用stdlib中的'array'模塊。 – Bakuriu 2013-05-14 14:49:56
@Bakuriu我使用它們作爲符號而不是數值的矩陣,所以我需要使用symarray,我認爲stdlib中的那些將不會用於我的目的。你知道是否有任何方法可以爲symarray執行append功能? – user124123 2013-05-14 15:00:35
正如我所說*沒有辦法將值附加到numpy數組*。創建一個大小增加一個新數組並添加新值。順便說一下,'vstack'是'numpy'包中的一個函數,*不是'ndarray'的一個方法。 – Bakuriu 2013-05-14 15:19:11