gpt4 book ai didi

python - Numpy 矩阵乘法广播

转载 作者:太空宇宙 更新时间:2023-11-03 11:29:07 32 4
gpt4 key购买 nike

我有一个由 N 个 3x3 数组组成的数组(矩阵集合,尽管数据类型是 np.ndarray),我有一个由 N 个 3x1 数组组成的数组(一个向量集合)。我想要做的是将每个矩阵乘以每个向量,所以我希望得到 N 个 3x1 数组。

简单的例子:

A = np.ones((6,3,3))
B = np.ones((6,3,1))
np.dot(A,B) # This gives me a 6x3x6x1 array, which is not what I want
np.array(map(np.dot,A,B)) # This gives me exactly what I want, but I don't want to have to rely on map

我厌倦了各种 reshape ,探索了 einsum 等,但无法让它按照我想要的方式工作。我如何让它与 numpy 广播一起工作?此操作最终需要执行数千次,我不希望 map 或列表理解操作减慢速度。

最佳答案

您可以使用 np.einsum计算点积并创建所需形状的矩阵:

np.einsum('ijk,ikl->ijl', A, B)

关于python - Numpy 矩阵乘法广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26849910/

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