2 回答

TA貢獻2021條經驗 獲得超8個贊
In [21]: Z=np.array([])
In [22]: Z.shape
Out[22]: (0,)
您希望如何向具有這種形狀的數組添加內容?
np.append確實有效,但只是因為如果首先確定Z至少是 1d,那就是它破壞了它。
In [23]: np.append(Z,np.arange(10))
Out[23]: array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])
我們需要在 中使用某種大粗體字母numpy,表示不要嘗試在循環(huán)中追加(或連接或堆疊)數組。
您是否嘗試構建一個列列表,然后只使用一個連接?
alist = []
for i in [3,8,10]:
alist.append(K[:,[i]])
print(alist)
Z = np.concatenate(alist, axis=1)
# Z=[K[:,3] K[:,8] K[:,10]]
或者
alist = []
alist.append(3); alist.append(8); alist.append(10)
Z = K[:,alist]
重復拼接數組有兩個大問題——速度慢,而且很難上手。該 (0,) 形狀數組是空列表的有效替代品。
如果您需要迭代地做事情,請考慮列表。list append 比較快,而且使用簡單。

TA貢獻1860條經驗 獲得超9個贊
Numpy 實際上是用于快速/穩(wěn)健的矩陣運算,例如乘法、加法等。
因為,您正在處理排序行/列表的結構和操作。我強烈建議您使用Pandas Dataframe
您可以根據條件輕松添加列甚至合并兩個矩陣(是的,例如 sql 連接)。
看看df.assign
df = pd.Dataframe(npArray)
df.assign('newcolumn', yourNewColumnValuesAsList)
添加回答
舉報