如何在一列中创建一个1到n的2D数组,在另一列中创建零 - Python

时间:2017-04-02 20:59:19

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

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

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阵列。

2 个答案:

答案 0 :(得分:1)

也许是这样的?

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

答案 1 :(得分:0)

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

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

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