将2D数组分配到不同的2D数组(Python)

时间:2017-02-09 17:08:28

标签: arrays python-3.x

我在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。有没有办法正确地写这个?

0 个答案:

没有答案