0

ベクトル (3x1) で行列乗算 (3x3 行列) を実行したいと考えています。「問題」は、ベクトルのすべてのコンポーネントが別の行列のそれぞれに取り込まれており、どうすればよいかわかりません。それを行う方法はありますか?

import numpy as np
A = np.array([[1,1,1],[2,1,0],[1,0,1]])

v1 = np.array([[1,2,3,4]])
v2 = np.array([[5,6,7,8]])
v3 = np.array([[9,10,11,12]])

A x {1,5,9}.T を掛けて、結果を保存します。次に、A x {2,6,10}.T、A x {3,7,11}.T、最後に A x {4,8,12}.T です。配列 v1、v2、および v3 の長さは同じです。

前もって感謝します!よろしく、

シャビ

4

2 に答える 2

2

でこぼこの配列:

2 つの numpy 配列を使用します。1 つの 3 x 3 と 1 つの 3x1:

>>> import numpy as np
>>> a = np.ones((3,3))
>>> b=np.random.rand(3,1)
array([[ 0.08970952],
       [ 0.56447089],
       [ 0.57500698]])

行列の乗算が必要な場合は、使用できますdot

>>> np.dot(a,b)
array([[ 1.22918739],
       [ 1.22918739],
       [ 1.22918739]])

要素ごとの乗算が必要な場合は、使用できます*

>>> a*b
array([[ 0.08970952,  0.08970952,  0.08970952],
       [ 0.56447089,  0.56447089,  0.56447089],
       [ 0.57500698,  0.57500698,  0.57500698]])

でこぼこ行列:

numpy 行列を使用している場合は*、行列の乗算に演算子を使用できることに注意してください。

>>> c = np.mat(a)   # converts from array to matrix
>>> d = np.mat(b)
>>> c*d
matrix([[ 1.22918739],
        [ 1.22918739],
        [ 1.22918739]])
于 2013-08-06T13:00:22.323 に答える