繁体   English   中英

在python中连接几个np数组

[英]Concatenate several np arrays in python

我有几个凹凸不平的数组,我想连接它们。 我正在使用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,1])。 我尝试在np.concatenate添加 for 循环

xt =np.concatenate((for a in args: a),axis=1)

但我收到语法错误。 我既不能使用 append 也不能使用扩展,因为我必须处理numpy arrays而不是lists 有人可以帮忙吗?

提前致谢

concatenate可以接受一系列类似数组的序列,例如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])

顺便说一下,虽然axis=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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM