在python中连接多个np数组

在python中连接多个np数组,python,numpy,Python,Numpy,我有几个凹凸不平的数组,我想把它们连接起来。我使用的是np.concatenate((array1,array2),axis=1)。我现在的问题是,我想使数组的数量参数化,我编写了这个函数 x1=np.array([1,0,1]) x2=np.array([0,0,1]) x3=np.array([1,1,1]) def conc_func(*args): xt=[] for a in args: xt=np.concatenate(a,axis=1)

我有几个凹凸不平的数组,我想把它们连接起来。我使用的是
np.concatenate((array1,array2),axis=1)
。我现在的问题是,我想使数组的数量参数化,我编写了这个函数

x1=np.array([1,0,1])
x2=np.array([0,0,1])
x3=np.array([1,1,1])  

def conc_func(*args):
    xt=[]
    for a in args:
        xt=np.concatenate(a,axis=1)
    print xt
    return xt

xt=conc_func(x1,x2,x3)
此函数返回([1,1,1]),我希望它返回([1,0,1,0,0,1,1,1])。我试图在
np.concatenate
中添加for循环

xt =np.concatenate((for a in args: a),axis=1)
但是我得到了一个语法错误。我既不能使用append也不能使用extend,因为我必须处理
numpy数组
而不是
列表
。有人能帮忙吗

提前感谢

可以接受类似数组的序列,例如
args

In [11]: args = (x1, x2, x3)

In [12]: xt = np.concatenate(args)

In [13]: xt
Out[13]: array([1, 0, 1, 0, 0, 1, 1, 1, 1])

顺便说一下,尽管轴=1可以工作,但输入都是一维数组(因此它们只有一个0轴)。因此,使用
axis=0
或完全忽略
axis
更有意义,因为默认值是
axis=0

您需要使用numpy吗?即使您这样做了,您也可以将numpy数组转换为python列表,运行以下命令并转换回numpy.array

在python中添加到列表将连接它们

x1=[1,0,1]
x2=[0,0,1]
x3=[1,1,1]

def conc_func(*args):
    xt=args[0]
    print(args)
    for a in args[1:]:
        xt+=a
    print (xt)
    return xt

xt=conc_func(x1,x2,x3)

concatenate
获取数组(或元组)列表,它不限于2的元组。只给它一个数组通常是错误的
(对于args:a中的a)
是列表理解的错误语法。