假设我有一个大小为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])
但如果你真的想要你想要的,你应该接受沃伦的回答。