Numpy:在所有尺寸2上为尺寸1的零件赋值

Numpy:在所有尺寸2上为尺寸1的零件赋值,numpy,Numpy,这项工作: arr = np.zeros((4,3)) insert = 1 arr[2,:] = insert 如果希望insert的值大于1,则arr为1d时该值有效: arr = np.zeros((4)) insert = np.ones(2) arr[2:4] = insert 但我要做的是将insert应用于dim2的每个“行”。我无法让它工作: arr = np.zeros((4,3)) insert = np.ones(2) arr[2:4, :] = insert Trac

这项工作:

arr = np.zeros((4,3))
insert = 1
arr[2,:] = insert
如果希望insert的值大于1,则arr为1d时该值有效:

arr = np.zeros((4))
insert = np.ones(2)
arr[2:4] = insert
但我要做的是将insert应用于dim2的每个“行”。我无法让它工作:

arr = np.zeros((4,3))
insert = np.ones(2)
arr[2:4, :] = insert
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: could not broadcast input array from shape (2) into shape (2,3)
arr=np.零((4,3))
插入=np.ones(2)
arr[2:4,:]=插入
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:无法将输入数组从形状(2)广播到形状(2,3)

有什么建议吗?

没有,无论您分配什么,都必须与要分配的数组形状相同

import numpy as np

arr = np.zeros((4,3))

insert = np.ones((2,3))

arr[2:4] = insert

print(arr)

将您的
insert
更改为2D,以便可以使用索引播放。