将整个数组与另一个数组中的条目独立相乘

Mulitply entire array with entries from another array independently

假设我有一个大小为 2x1 的数组和另一个大小相同的数组。我想将第二个数组中的每个元素分别与第一个数组相乘以获得大小为 4x1 的数组。假设我有以下数组:

my_array_1 = array([[1.],
                    [1.]])

my_array_2 = array([[5.],
                    [1.]])

结果应该是这样的:

result_array = array([[5.],
                     [5.],
                     [1.],
                     [1.]])

我知道迭代索引以获得带有 for 循环的结果数组,但是有没有更有效的方法,例如NumPy 函数调用?

看看numpy.kron:

In [35]: np.kron(my_array_2, my_array_1)                                        
Out[35]: 
array([[5.],
       [5.],
       [1.],
       [1.]])

这对我来说是最直接的:

>>> a1 = array([[5],[1]])
>>> a2 = array([1,2])
>>> (a1*a2).flatten()
array([ 5, 10,  1,  2])

但是如果你想要的正是你所要求的,你应该选择