Python - 将1D阵列添加为2D列

时间:2017-03-16 15:24:43

标签: python arrays numpy

我想添加一个矢量作为我的2D数组的第一列,如下所示:

[[  1.     0.     0.      nan]
 [  4.     4.     9.97   1.  ]
 [  4.     4.    27.94   1.  ]
 [  2.     1.     4.17   1.  ]
 [  3.     2.    38.22   1.  ]
 [  4.     4.    31.83   1.  ]
 [  3.     4.    41.87   1.  ]
 [  2.     1.    18.33   1.  ]
 [  4.     4.    33.96   1.  ]
 [  2.     1.     5.65   1.  ]
 [  3.     3.    40.74   1.  ]
 [  2.     1.    10.04   1.  ]
 [  2.     2.    53.15   1.  ]]

我想添加一个13个元素的aray []作为矩阵的第一列。我尝试使用np.stack_column,np.append,但它适用于1D矢量或不起作用,因为我不能选择axis = 1而只能执行np.append(peak_values, results)

4 个答案:

答案 0 :(得分:1)

通过删除不必要的转置来改进this answer,实际上,您可以使用reshape(-1, 1)将想要沿轴1悬挂的1d数组转换为2d数组,从而将其转换为2d数组。柱。此时,数组的形状仅沿第二个轴不同,并且np.concatenate接受以下参数:

>>> import numpy as np
>>> a = np.arange(12).reshape(3, 4)
>>> b = np.arange(3)
>>> a
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
>>> b
array([0, 1, 2])
>>> b.reshape(-1, 1) # preview the reshaping...
array([[0],
       [1],
       [2]])
>>> np.concatenate((b.reshape(-1, 1), a), axis=1)
array([[ 0,  0,  1,  2,  3],
       [ 1,  4,  5,  6,  7],
       [ 2,  8,  9, 10, 11]])

答案 1 :(得分:0)

我建议使用Numpy。它可以让你轻松地做你想做的事。

这是一个平整整个集合的示例。你可以使用像nums [0]这样的东西。

nums = [0, 1, 2, 3, 4]
even_squares = [x ** 2 for x in nums if x % 2 == 0] 
print even_squares  # Prints "[0, 4, 16]"

答案 2 :(得分:0)

对于最简单的答案,你可能甚至不需要numpy。

尝试以下方法:

new_array = []
new_array.append(your_array)

那就是它。

答案 3 :(得分:0)

我有一个非常简单的选项供您使用numpy-

x = np.array( [[ 3.9427767, -4.297677 ],
 [ 3.9427767, -4.297677 ],
 [ 3.9427767, -4.297677 ],
 [ 3.9427767, -4.297677 ],
 [ 3.942777 , -4.297677 ],
 [ 3.9427767, -4.297677 ],
 [ 3.9427767, -4.297677 ],
 [ 3.9427767 ,-4.297677 ],
 [ 3.9427767, -4.297677 ],
 [ 3.9427772 ,-4.297677 ]])

b = np.arange(10).reshape(-1,1)
np.concatenate((b.T, x), axis=1)

输出-

array([[ 0.       ,  3.9427767, -4.297677 ],
       [ 1.       ,  3.9427767, -4.297677 ],
       [ 2.       ,  3.9427767, -4.297677 ],
       [ 3.       ,  3.9427767, -4.297677 ],
       [ 4.       ,  3.942777 , -4.297677 ],
       [ 5.       ,  3.9427767, -4.297677 ],
       [ 6.       ,  3.9427767, -4.297677 ],
       [ 7.       ,  3.9427767, -4.297677 ],
       [ 8.       ,  3.9427767, -4.297677 ],
       [ 9.       ,  3.9427772, -4.297677 ]])