Okey,所以我试图变得更好,以便从代码中消除不必要的循环,而我总是以这个“问题”告终:我有两个数组A和B,它们的长度分别为I和J,我想要创建一个嵌套数组M大小(I,J),其中M [I,J] = A [i] * B [j],有人知道一种无需循环的方法吗?感谢您提供任何提示或解决方案!
编辑:只是错别字。
答案 0 :(得分:1)
您可以使用multiply.outer:
import numpy as np
a = np.array([1,3,0,2])
b = np.array([1,4,2])
result = np.multiply.outer(a, b)
print(result)
输出
[[ 1 4 2]
[ 3 12 6]
[ 0 0 0]
[ 2 8 4]]
答案 1 :(得分:0)
您可以通过为a
构造一个 n×1 矩阵来强制广播:
a[:,None] * b
这给我们:
>>> a = np.array([1,3,0,2])
>>> b = np.array([1,4,2])
>>> a[:,None] * b
array([[ 1, 4, 2],
[ 3, 12, 6],
[ 0, 0, 0],
[ 2, 8, 4]])