如何在numpy中创建一个2D"rect"数组(1的方块,否则为0)?

Meh*_*dad 6 python arrays numpy rect

什么是创建2D numpy"rect"数组的"正确"方法,如:

0000000000000000000
0000000000000000000
0000000000111110000
0000000000111110000
0000000000111110000
0000000000000000000
Run Code Online (Sandbox Code Playgroud)

即一个在某个边界内具有给定值的数组,否则为零?

Joe*_*ton 12

只需创建一个零数组并将所需区域设置为一个.

例如

import numpy as np
data = np.zeros((6,18))
data[2:5, 9:14] = 1
print data
Run Code Online (Sandbox Code Playgroud)

这会产生:

[[ 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.  1.  1.  1.  1.  0.  0.  0.  0.]
 [ 0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  1.  1.  1.  1.  0.  0.  0.  0.]
 [ 0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  1.  1.  1.  1.  0.  0.  0.  0.]
 [ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.]]
Run Code Online (Sandbox Code Playgroud)

  • *facepalm* 完全忘记了切片分配......非常感谢。:) (2认同)