[英]How to get inner product of 3D array to 2D array?
我有兩個 Numpy 陣列
b=np.array([[1, 2, 3], [4, 5, 6]])
a=np.array([[[1, 2,1], [3, 4,1],[4,5,6],[6,7,8]], [[5, 6,1], [7, 8,1],[4,5,6],[6,7,8]]])
a.shape,b.shape
((2, 4, 3), (2, 3))
我想計算這些數組的點積。 我嘗試了以下代碼:
s=np.flip(np.dot(a,b).transpose((0,2,1)),1)
但它會引發以下錯誤:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-140-6ada0906cbfc> in <module>
----> 1 s=np.flip(np.dot(a,b).transpose((0,2,1)),1)
<__array_function__ internals> in dot(*args, **kwargs)
ValueError: shapes (2,4,3) and (2,3) not aligned: 3 (dim 2) != 2 (dim 0)
我希望我的結果數組的形狀應該是 -(2,4)
我將如何計算這個? 請建議一些其他方法來做到這一點。
a
的形狀應該是(*, 3, 2)
因為b
的形狀是(2, 3)
。
a_ · b = │ a11 a12 | * | b11 b12 b13 |
│ a21 a22 | | b21 b22 b23 |
│ a31 a32 |
其中a_
是 a 的a
元素。
使用以下a
:
a=np.array([[
[1, 2], [1, 3], [4, 1]
], [
[4, 5] ,[6, 6], [7, 8]
], [
[5, 6], [1, 7], [8, 1]
], [
[4, 5], [6, 6] ,[7, 8]
]])
我沒有錯誤。 所以試試:
np.dot(a.reshape(4, 3, 2), b)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.