[英]python numpy 3-d matrix times 1-d array
我有一個名為 a(維度為(2,3,3))的多維數組和另一個名為 c(維度為(2,))的數組,如下代碼:如何將輸出作為組合--->( a[0]*c[0],a[1]*c[1]) 沒有循環,表示1次a的第一組,即[[1,2],[2,-2],[3 ,-3]]和10次第二組a,即[[4,-4],[5,-5],[6,-6]]。 順便說一句,我已經嘗試過 a*c、np.multipy(a,c) 等,但它似乎是 a 的第一列的 1 倍和第二列的 10 倍,這不是我想要的。 非常感謝。
In [88]: a = np.array([[[1,2],[2,-2],[3,-3]],[[4,-4],[5,-5],[6,-6]]])
In [89]: a
Out[89]:
array([[[ 1, 2],
[ 2, -2],
[ 3, -3]],
[[ 4, -4],
[ 5, -5],
[ 6, -6]]])
In [90]: c = np.array([1,10])
In [91]: c
Out[91]: array([ 1, 10])
In [92]: a*c
Out[92]:
array([[[ 1, 20],
[ 2, -20],
[ 3, -30]],
[[ 4, -40],
[ 5, -50],
[ 6, -60]]])
我想要的輸出就像
array([[[ 1, 2],
[ 2, -2],
[ 3, -3]],
[[ 40, -40],
[ 50, -50],
[ 60, -60]]])
import numpy as np
a = np.array([[[1,2],
[2,-2],
[3,-3]],
[[4,-4],
[5,-5],
[6,-6]]])
c = np.array([1,10])
print(a*c)
輸出:
[[[ 1 20]
[ 2 -20]
[ 3 -30]]
[[ 4 -40]
[ 5 -50]
[ 6 -60]]]
我猜這就是你問的。
你的問題是什么? 如何繁殖? 你可以這樣做:
import numpy as np
a = np.array([[[1,2],[2,-2],[3,-3]], [[4,-4],[5,-5],[6,-6]]]);
c = np.array([1, 10]);
print a.dot(c)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.