假設我在 numpy 中有一個 3-D 陣列
a = [ [[1,2], [3,4]] , [[5,6], [7,8]] ]
我想向矩陣添加一個新的行向量,以便輸出例如,如果我想將行向量 [9,10] 添加到 3d 陣列中的第二個矩陣:
a = [ [[1,2], [3,4]] , [[5,6], [7,8], [9,10]] ]
我知道如何使用np.append. 但我不知道如何用 3-D 陣列來做到這一點。我曾嘗試使用,np.append但我得到的只是維度錯誤、扁平陣列或錯誤的陣列。在 numpy 中執行此操作的正確方法是什么?
uj5u.com熱心網友回復:
Numpy 進行記憶體優化并創建np.ndarray您請求的大小。最好一次創建一個您需要的大小的陣列并對其進行操作,而不是多次添加新行。
因此,如果您將使用許多附加:使用串列。如果您知道總大小:使用 numpy 陣列。
您面臨的另一個問題是:形狀不統一。那是
a = np.array([ [[1,2], [3,4]] , [[5,6], [7,8]] ])
# a.shape is (2, 2, 2)
new_a = np.array([ [[1,2], [3,4]] , [[5,6], [7,8], [9, 10] ]])
# What is the shape of new_a?
可以執行您想要的操作的代碼是:
import numpy as np
a = np.array([ [[1,2], [3,4]] , [[5,6], [7,8]] ])
b = np.array([9,10])
res = np.zeros(a.shape[0], dtype="object")
res[0] = a[0]
res[1] = np.zeros((a.shape[1] 1, a.shape[2]))
res[1, :-1] = a[1, :]
res[1, -1] = b
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/342692.html
上一篇:回圈遍歷陣列和資料幀
