我在Python3.4中的数组中遇到了问题。我试图将数组分配给更大的数组,指定其索引。
例如,当我编写以下程序时,
test=np.zeros((4,4))
test2=np.zeros((2,2))
test2[:,:]=2
test[[1,2],1:3]=test2
print(test)
这给出了像
这样的结果[[ 0. 0. 0. 0.]
[ 0. 2. 2. 0.]
[ 0. 2. 2. 0.]
[ 0. 0. 0. 0.]]
然而,当我稍微改变程序
时test=np.zeros((4,4))
test2=np.zeros((2,2))
test2[:,:]=2
test[[1,2],[1,2]]=test2
print(test)
这给了我一个错误
ValueError: shape mismatch: value array of shape (2,2) could not be broadcast to indexing result of shape (2,)
我不明白两个程序之间的区别。 我想选择要分配的数组的索引。
对不起,我的问题不清楚。 我想实现像
这样的矩阵[[0,0,0,0],
[0,2,0,2],
[0,0,0,0],
[0,2,0,2]]
编写程序
test[[1,3],[1,3]]=test2
但这给了我ValueError。有没有办法正确地写这个?