簡體   English   中英

python numpy 3維矩陣乘以1維數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM