0

配列内のゾーンの置換を探しています。たとえば、配列を作成します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".

そのようなことを行う方法は何ですか?

ありがとう

4

1 に答える 1

6

正しいインデックスを使用してください:

>>> 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.]])

ドキュメントから:

スライスがどのように機能するかを覚える1つの方法は、インデックスを文字間を指すものと考えることです。最初の文字の左端には0の番号が付けられます。次に、n文字の文字列の最後の文字の右端にインデックスnが付けられます。次に例を示します。

 +---+---+---+---+---+
 | H | e | l | p | A |
 +---+---+---+---+---+
 0   1   2   3   4   5
-5  -4  -3  -2  -1
于 2012-10-21T18:41:31.100 に答える