gpt4 book ai didi

python - Numpy 中的线性代数

转载 作者:太空宇宙 更新时间:2023-11-04 00:44:31 25 4
gpt4 key购买 nike

我正在使用 np.dot() 在 NumPy 中进行矩阵乘法。由于数据集非常大,我想尽可能减少整体运行时间 - 即尽可能少地执行 np.dot() 产品。

具体来说,我需要计算总体矩阵乘积以及值向量中每个元素的相关流量。NumPy 中有没有一种方法可以在一个或两个 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)

最佳答案

如果你用来选择行的向量确实是单位向量,你最好不要对 from_Afrom_B来自_C。矩阵乘法需要更多的加法和乘法,而不是仅仅将矩阵的每一行乘以它在向量中的对应条目:

from_ABC = matrix.values * vector.values

您只需调用一次 np.dot 即可获得整体

关于python - Numpy 中的线性代数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40345334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com