【问题标题】:How to create a 2D "rect" array (square block of 1's, else 0's) in numpy?如何在 numpy 中创建一个二维“矩形”数组(1 的方形块,否则为 0)?
【发布时间】:2012-04-15 02:57:38
【问题描述】:

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

0000000000000000000
0000000000000000000
0000000000111110000
0000000000111110000
0000000000111110000
0000000000000000000

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

【问题讨论】:

    标签: python arrays numpy rect


    【解决方案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.]]
    

    【讨论】:

    • facepalm 完全忘记了切片分配...非常感谢。 :)
    猜你喜欢
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    • 1970-01-01
    相关资源
    最近更新 更多