gpt4 book ai didi

NumPy:将矩阵乘以数组的更好方法?

转载 作者:行者123 更新时间:2023-12-02 00:36:43 37 4
gpt4 key购买 nike

我正在使用 NumPy array 做一些工作,但偶尔我需要将它们乘以数组。

现在,我正在做类似的事情:

rotation_matrix = np.matrix([ ... ])
for vector in vectors:
rotated_vec_mat = vector.T * rotation_matrix
vector[:] = np.array(rotated_vec_mat)[0]

但这很难看(而且很慢?)。

有没有更简洁的方法?

最佳答案

这样做可能更有意义:

vector_arr = np.concatenate([vector[np.newaxis, :] for vector in vectors], axis=0)
rotated_vector_arr = np.dot(vector_arr, rotation_matrix)

那么 rotated_vector_arr 的行就是你想要的。您可以将整个事情视为一个矩阵乘积,并通过 BLAS 库在 C/Fortran 中完成循环。

不需要使用 matrix() 类来进行矩阵乘法,数组可以正常工作。 matrix() 重载了 * 运算符,但我发现它只是混淆了事情。

关于NumPy:将矩阵乘以数组的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4308114/

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