IDL#操作符的Python numpy等价物是什么



我正在寻找与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]]

如果我是对的,你想要矩阵乘法。

最新更新