I have several bumpy arrays and I want to concatenate them. I am using np.concatenate((array1,array2),axis=1)
. My problem now is that I want to make the number of arrays parametrizable, I wrote this function
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)
this function returns ([1,1,1]), I want it to return ([1,0,1,0,0,1,1,1,1]). I tried to add the for loop inside the np.concatenate
as such
xt =np.concatenate((for a in args: a),axis=1)
but I am getting a syntax error. I can't used neither append nor extend because I have to deal with numpy arrays
and not lists
. Can somebody help?
Thanks in advance
concatenate
can accept a sequence of array-likes, such as 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])
By the way, although axis=1
works, the inputs are all 1-dimensional arrays (so they only have a 0-axis). So it makes more sense to use axis=0
or omit axis
entirely since the default is axis=0
.
Do you need to use numpy? Even if you do, you can convert numpy array to python list, run the following and covert back to numpy.array.
Adding to lists in python will concatenate them...
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)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.