【发布时间】:2017-06-06 11:06:49
【问题描述】:
我有两个数组 A (4000,4000),其中只有对角线填充了数据,而 B (4000,5) 填充了数据。有没有比 numpy.dot(a,b) 函数更快的方法来乘(点)这些数组?
到目前为止,我发现(A * B.T).T 应该更快(其中 A 是一维 (4000),填充了对角线元素),但结果却大约慢了一倍。
在 A 是对角数组的情况下,是否有更快的方法来计算 B.dot(A)?
【问题讨论】:
-
那些是数组还是矩阵?另外,你确定 (B * A.T).T 吗?
-
Numpy 矩阵,我对 (B*A.T).T 进行了测试,但仅针对小矩阵,因此我将尝试针对大矩阵并发布结果
-
我的意思是对于 A (4000,5), B (4000,4000),
B * A.T会有错位错误。 -
在编辑后,
(A * B.T).T再次因形状未对齐而无法工作。 -
是的,但在这种情况下,A 将是一维(4000,)数组
标签: numpy matrix-multiplication