Concatenation of 2 1D `numpy` Arrays Along 2nd Axis

前端 未结 5 1082
不知归路
不知归路 2021-02-18 22:59

Executing

import numpy as np
t1 = np.arange(1,10)
t2 = np.arange(11,20)

t3 = np.concatenate((t1,t2),axis=1)

results in a

Trac         


        
5条回答
  •  情书的邮戳
    2021-02-18 23:21

    Your title explains it - a 1d array does not have a 2nd axis!

    But having said that, on my system as on @Oliver W.s, it does not produce an error

    In [655]: np.concatenate((t1,t2),axis=1)
    Out[655]: 
    array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 11, 12, 13, 14, 15, 16, 17, 18,
           19])
    

    This is the result I would have expected from axis=0:

    In [656]: np.concatenate((t1,t2),axis=0)
    Out[656]: 
    array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 11, 12, 13, 14, 15, 16, 17, 18,
           19])
    

    It looks like concatenate ignores the axis parameter when the arrays are 1d. I don't know if this is something new in my 1.9 version, or something old.

    For more control consider using the vstack and hstack wrappers that expand array dimensions if needed:

    In [657]: np.hstack((t1,t2))
    Out[657]: 
    array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 11, 12, 13, 14, 15, 16, 17, 18,
           19])
    
    In [658]: np.vstack((t1,t2))
    Out[658]: 
    array([[ 1,  2,  3,  4,  5,  6,  7,  8,  9],
           [11, 12, 13, 14, 15, 16, 17, 18, 19]])
    

提交回复
热议问题