我正在寻找替换数组中的区域,例如我创建了一个数组b = numpy.zeros((12,12))
。我想在a=numpy.aray([[1,2],[2,3]])
索引的左上角用[0:1,0:1]
更改其值。
当我指定b[0:1,0:1] = a
时出现错误:
"ValueError: output operand requires a reduction, but reduction is not enabled".
做这种事的方法是什么?
由于
答案 0 :(得分:5)
使用正确的索引:
>>> b[0:2,0:2] = a
>>> b
array([[ 1., 2., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 2., 3., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])
来自the docs:
记住切片如何工作的一种方法是将索引视为 指向字符之间,与第一个字符的左边缘 编号为0.然后是n个字符串的最后一个字符的右边缘 字符具有索引n,例如:
+---+---+---+---+---+
| H | e | l | p | A |
+---+---+---+---+---+
0 1 2 3 4 5
-5 -4 -3 -2 -1