如何初始化2D numpy数组

时间:2015-05-23 22:11:09

标签: python numpy

注意: 我找到答案并回答了我自己的问题,但我必须等待2天才能接受我的答案。

如何使用除零以外的其他值初始化800 x 800的numpy数组? :

array = numpy.zeros((800, 800))

我正在寻找这样的解决方案,我可以在其中传递值列表(或列表)。

 array = numpy.array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]])

修改 我不想用相同的值填充它。

我想要一个快速的代码示例,演示如何在没有像我在其他问题中找到的详细示例那样工作。我还想要一些简单易懂的东西,比如将python数组转换为numpy数组。我也在寻找2D阵列的具体情况。

2 个答案:

答案 0 :(得分:3)

您可以使用fill方法初始化数组。

x = np.empty(shape=(800,800))
x.fill(1)

答案 1 :(得分:1)

自己找到答案: 这段代码做了我想要的,并且表明我可以放一个python数组(“a”)并让它变成一个numpy数组。对于我将其绘制到窗口的代码,它将其颠倒了,这就是我添加最后一行代码的原因。

# generate grid
    a = [ ]
    allZeroes = []
    allOnes = []

    for i in range(0,800):
        allZeroes.append(0)
        allOnes.append(1)

    # append 400 rows of 800 zeroes per row.
    for i in range(0, 400):
        a.append(allZeroes)

    # append 400 rows of 800 ones per row.
    for i in range(0,400):
        a.append(allOnes)


#So this is a 2D 800 x 800 array of zeros on the top half, ones on the bottom half.
array = numpy.array(a)

# Need to flip the array so my other code that draws 
# this array will draw it right-side up
array = numpy.flipud(array)