gpt4 book ai didi

python - 三维数组作为向量和矩阵的乘法

转载 作者:太空宇宙 更新时间:2023-11-03 21:17:26 24 4
gpt4 key购买 nike

我有一个数组A(shape = (a, 1))和矩阵B(shape = (b1, b2))。想要将后者与前者的每个元素相乘,生成一个三维数组(shape = (a, b1, b2))。

有矢量化的方法来做到这一点吗?

import numpy as np
A = np.random.rand(3, 1)
B = np.random.rand(5, 4)
C = np.array([ a * B for a in A ])

最佳答案

有多种方法可以实现这一目标。一种是使用np.dot ,请注意,有必要在 B 中引入第二个轴,以便两个 ndarrays 可以相乘:

C = np.dot(A,B[:,None])
print(C.shape)
# (3, 5, 4)

使用np.multiply.outer ,正如 @divakar 所建议的:

C = np.multiply.outer(A,B)
print(C.shape)
# (3, 5, 4)

或者您也可以使用np.einsum :

C = np.einsum('ij,kl->ikl', A, B)
print(C.shape)
# (3, 5, 4)

关于python - 三维数组作为向量和矩阵的乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54580168/

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