【发布时间】:2018-08-12 08:45:24
【问题描述】:
我有一个 2D 和一个 3D numpy 数组,并希望将 2D 数组的每一列乘以其各自的数组。例如乘法
[[[1. 1.]
[1. 1.]
[1. 1.]]
[[1. 1.]
[1. 1.]
[1. 1.]]]
由
[[ 5 6]
[ 4 7]
[ 8 10]]
给予
[[[ 5. 5.]
[ 4. 4.]
[ 8. 8.]]
[[ 6. 6.]
[ 7. 7.]
[10. 10.]]]
我目前的代码是:
three_d_array = np.ones([2,3,2])
two_d_array = np.array([(5,6), (4,7), (8,10)])
list_of_arrays = []
for i in range(np.shape(two_d_array)[1]):
mult = np.einsum('ij, i -> ij', three_d_array[i], two_d_array[:,i])
list_of_arrays.append(mult)
stacked_array = np.stack(list_of_arrays, 0)
使用来自Multiplying across in a numpy array 的答案 但是有没有办法在没有 for 循环的情况下做到这一点?非常感谢,丹
【问题讨论】: