NumPyでnp.dot()を使って行列乗算を行っています。データセットが非常に大きいので、できるだけ全体的な実行時間を短縮したい、つまりできるだけ少ないnp.dot()製品を実行したいと考えています。Numpyの線形代数
具体的には、私の値ベクトルの各要素からの全体の行列積と関連するフローを計算する必要があります。 NumPyでは、1つまたは2つのnp.dot()製品でこれらをすべて一緒に計算する方法はありますか? 以下のコードでは、np.dot()製品の数を減らして、同じ出力を得る方法はありますか?
import pandas as pd
import numpy as np
vector = pd.DataFrame([1, 2, 3],
['A', 'B', 'C'], ["Values"])
matrix = pd.DataFrame([[0.5, 0.4, 0.1],
[0.2, 0.6, 0.2],
[0.1, 0.3, 0.6]],
index = ['A', 'B', 'C'], columns = ['A', 'B', 'C'])
# Can the number of matrix multiplications in this part be reduced?
overall = np.dot(vector.T, matrix)
from_A = np.dot(vector.T * [1,0,0], matrix)
from_B = np.dot(vector.T * [0,1,0], matrix)
from_C = np.dot(vector.T * [0,0,1], matrix)
print("Overall:", overall)
print("From A:", from_A)
print("From B:", from_B)
print("From C:", from_C)
ここでの議論を参照してください - http://stackoverflow.com/questions/21562986/numpy-matrix-vector-multiplication –
希望する入出力のより良い例を提供できますか?あなたが何を望んでいるかは明確ではありません。 –
ここでは行列積を必要としません。私の答えを見てください。私はそれが現在選ばれているものよりも良いと思う。 –