使用 python 非常新而且很困惑。
我有兩個陣列。陣列 1 是 2x2,陣列 2 是 2x3。我正在嘗試將兩個陣列相乘以創建陣列 3,陣列 3 中的第 3 列是重復陣列 2 中第 3 列中的 2 個數字。我不確定是否有特定的方法可以做到這一點,所以我在想我會將陣列 2 切片以使其成為 2x2,然后將 array1 與 array2slice 相乘。這會給我一個帶有相乘值的 2x2 陣列。我需要做的就是添加已洗掉的第三列(例如 1 和 5)。我想用 np.append 做到這一點,但這似乎不起作用(我肯定做錯了)。
任何幫助,將不勝感激。
array2Slice = np.array(array2[0:2, 0:2])
WIParray3 = np.multiply(array1,array2Slice)
array3 = np.append(WIParray3, [1],[5],axis = 1)
uj5u.com熱心網友回復:
我認為這可能是語法錯誤。查看https://numpy.org/doc/stable/reference/generated/numpy.append.html我會建議:
array3 = np.append(WIParray3, [[1],[5]],axis = 1)
還提供錯誤訊息可能有助于解決您的問題:)
uj5u.com熱心網友回復:
這是代碼。
Arr1 = np.array([[1,2],[3,4]]) # 2x2 array
Arr2 = np.array([[5,6,7],[8,9,10]]) # 2x3 array
multiplyed = np.multiply(Arr1,Arr2[0:2,0:2] )
Arr3 = np.append(multiplyed ,[ [Arr2[0,2]] , [Arr2[1,2] ]] , axis = 1)
uj5u.com熱心網友回復:
你可以用一行來解決這個問題:
array3 = np.hstack([array1 * array2[:2, :2], array2[:, np.newaxis, 2]])
Wherenp.hstack采用一系列陣列并將它們逐列連接。除了第二個軸之外,所有陣列都必須具有相同的形狀,這就是為什么np.newaxis必須將 a 添加到列中的原因。
注意:運算子*(相當于np.multiply)將元素乘以元素。如果你想要一個矩陣乘法使用@(相當于np.matmul)。
一個更簡單但更長的方法是:
array3 = np.zeros((2, 3), dtype=array2.dtype)
array3[:2, :2] = array1 * array2[:2, :2]
array3[:, 2] = array2[:, 2]
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/505107.html
