我在用NumPy做矩阵乘法美国运输部(). 由于数据集非常大,我希望尽可能减少整个运行时间,即尽可能少地执行美国运输部()产品。在
具体地说,我需要计算整个矩阵乘积以及值向量的每个元素的相关流。 在纽比里有没有一种方法可以把所有这些计算在一起美国运输部()产品? 在下面的代码中,有没有方法可以减少美国运输部()产品仍然获得相同的产量?在
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)
如果用于选择行的向量确实是单位向量,那么最好不要对
from_A
,from_B
,from_C
进行矩阵乘法。矩阵乘法需要更多的加法和乘法,而不是将矩阵的每一行乘以向量中相应的项:您只需要调用
np.dot
就可以得到overall
。在您可以定义一个
3 x 3
形状的2D
数组,并执行矩阵乘法,如-样本运行-
^{pr2}$这里有一个使用^{} 的替代方法,可以在一个步骤中完成所有这些操作-
样本运行-
相关问题 更多 >
编程相关推荐