【问题标题】:How to initialize 2D numpy array如何初始化 2D numpy 数组
【发布时间】:2015-08-05 17:42:55
【问题描述】:

注意: 我找到了答案并回答了我自己的问题,但我必须等待 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 数组。我也在寻找二维数组的具体情况。

【问题讨论】:

  • 我不确定我得到了这个问题。您想构建一个填充有1s 的数组,还是填充您输入的任何值?另外,你为什么写一个30x30的数组,用1填充?
  • 我找到了我的问题的答案。我认为这很有用,因为我在我检查的其他答案的任何地方都找不到如此简单的答案。另外,我不想填充相同的值。我想添加我的答案以帮助他人。所以我想如果它没有被标记为重复。
  • 您阅读过文档吗?
  • @wwii 不,它是如此巨大和广阔,在任何地方都很难找到一个简单的例子。

标签: python numpy


【解决方案1】:

您可以使用填充方法来初始化数组。

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

【讨论】:

    【解决方案2】:

    自己找到了答案: 这段代码做了我想要的,并表明我可以放置一个 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)
    

    【讨论】:

      猜你喜欢
      • 2014-06-28
      • 1970-01-01
      • 2020-02-27
      • 2022-07-23
      • 2018-12-04
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多