我正在寻找与IDL#运算符等效的Python numpy
。以下是#操作员的操作:
通过乘以第一个数组的列来计算数组元素通过第二阵列的行。第二个数组必须相同第一个数组具有行时的列数。生成的数组具有与第一个数组的列数相同行作为第二阵列。
以下是我正在处理的numpy
阵列:
A = [[ 0.9826128 0. 0.18566662]
[ 0. 1. 0. ]
[-0.18566662 0. 0.9826128 ]]
和
B = [[ 1. 0. 0. ]
[ 0.62692564 0.77418869 0.08715574]]
此外,numpy.dot(A,B)
导致ValueError: matrices are not aligned
。
阅读IDL对矩阵乘法定义的注释,他们似乎使用了与其他人相反的符号:
IDL的约定是将第一个维度视为列第二个维度是行
所以#可以通过相当奇怪的外观来实现:
numpy.dot(A.T, B.T).T
从它们的示例值:
import numpy as np
A = np.array([[0, 1, 2], [3, 4, 5]])
B = np.array([[0, 1], [2, 3], [4, 5]])
C = np.dot(A.T, B.T).T
print(C)
给出
[[ 3 4 5]
[ 9 14 19]
[15 24 33]]
如果我是对的,你想要矩阵乘法。