高效的ndarray操作



我正在用Python转换一些Matlab代码。我需要做一些矩阵运算。我的矩阵(A((现在(是一个65x3的矩阵。然而,行数是可变的,这取决于我在程序中所处的步骤。

在Matlab中,我正在处理的代码是:

output = inv(A'*A) * A';

下面的Python代码很好地再现了预期的输出。我只是好奇是否有更好的(更Python、更快等(方法可以做到这一点?我尽量只使用基本的Python和numpy。

output = np.dot(np.linalg.inv(np.dot(np.transpose(A), A)), np.transpose(A))

感谢任何愿意提供帮助的人。

您可以使用T属性(转置数组(。此外,如果使用Python 3.5,则可以将@用于点积(有关详细信息,请参见PEP 465(。

output = np.linalg.inv(A.T @ A) @ A.T

最新更新