如何在numpy中垂直连接1x2数组?

时间:2014-11-17 09:36:53

标签: python numpy

如何连接另一个函数中生成的1x2数组?

我有一个for循环,它产生xa作为输出,它是一个float64(1L,2L)。

xa = [[ 1.17281823  1.210732  ]]

我尝试连接的代码是

A = []
for i in range(5): 
    # actually xa = UglyCalculation(**Inputs[i])
    xa = np.array([[ i, i+1 ]]) # for our example here
    # do something

我想做的就是连接/连接/垂直附加这些xa值。

基本上所需的输出应为

 0 1
 1 2
 2 3 
 3 4 
 4 5 

我尝试了以下几行代码,但它没有用。你能帮忙吗?

 A = np.concatenate((A, xa)) # Concatenate the matrices 
 A = np.concatenate((A,xa),axis=0)
 A=np.vstack((A,xa))

1 个答案:

答案 0 :(得分:2)

在A上设置形状允许连接类似列大小的数组:

import numpy as np
A = np.array([])
A.shape=(0,2) # set A to be 0 rows x 2 cols matrix
for i in range(5):
    xa = np.array([[i, i+1]])
    A = np.concatenate( (A,xa) )
print A

output
[[ 0.  1.]
 [ 1.  2.]
 [ 2.  3.]
 [ 3.  4.]
 [ 4.  5.]]

没有A.shape = (0,2)将抛出异常:

Traceback (most recent call last):
  File "./arr.py", line 5, in <module>
    A = np.concatenate( (A,xa) )
ValueError: all the input arrays must have same number of dimensions