【问题标题】:How can I create a 2D array with 1 to n in one column and zeros in the other - Python如何创建一个二维数组,其中一列为 1 到 n,另一列为零 - Python
【发布时间】:2017-04-02 20:59:19
【问题描述】:

我尝试创建两个数组,然后将它们相加

array_nmax = np.arange (100)
array_zeros = np.zeros (100, dtype = np.int)
array_final = np.append (array_nmax,np.zeros, axis = 0)

但它说它们不是相同的尺寸,即使它们应该都是 100 x 1 数组。

【问题讨论】:

  • 使用np.column_stack
  • 或其视觉表亲... out = np.c_[array_nmax, array_zeros]
  • 你的错误是因为你打错了 - 为什么你传递np.zeros而不是array_zeros

标签: python arrays python-3.x numpy multidimensional-array


【解决方案1】:

也许是这样的?

a = np.zeros((100, 10), dtype=np.int)
a[:, 0] = np.arange(0, 100)

【讨论】:

  • zeros(100, 2) 我认为
  • 当然,如果它有两列,它应该是 2。
  • 这就是标题所暗示的......两列
【解决方案2】:

比@GrigorisG 的回答慢,可读性不强,但仍然是一个可能的解决方案:

np.arange(100)[:,None] * [1,0]

顺便说一句,您的解决方案中有两个问题。第一个错误是concatenate 的第二个参数是函数np.zeros,而不是新创建的数组array_zeros。即使解决了这个问题,第二个问题是两个数组将沿着它们的第零维连接,结果将是一个形状为(200,) 的数组。您应该按照@Divakar 的建议使用np.column_stack

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    • 2018-08-29
    • 2018-04-02
    • 1970-01-01
    • 1970-01-01
    • 2016-12-07
    相关资源
    最近更新 更多