如何在numpy中创建一个二维“rect”数组(由1组成的正方形块,其他为0)?

6

如何以“正确”的方式创建一个二维numpy“rect”数组,例如:

0000000000000000000
0000000000000000000
0000000000111110000
0000000000111110000
0000000000111110000
0000000000000000000

即一个在给定范围内具有特定值的数组,否则为零?
1个回答

16

只需创建一个零数组,并将您想要的区域设置为1。

例如:

import numpy as np
data = np.zeros((6,18))
data[2:5, 9:14] = 1
print data
这将产生:
[[ 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.]]

3
扶额 完全忘记了切片赋值... 非常感谢。 :) - user541686

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接