Numpy concatenate 2D arrays with 1D array

前端 未结 3 1817
轻奢々
轻奢々 2020-12-09 15:16

I am trying to concatenate 4 arrays, one 1D array of shape (78427,) and 3 2D array of shape (78427, 375/81/103). Basically this are 4 arrays with features for 78427 images,

相关标签:
3条回答
  • 2020-12-09 15:55

    Try concatenating X_Yscores[:, None] (or X_Yscores[:, np.newaxis] as imaluengo suggests). This creates a 2D array out of a 1D array.

    Example:

    A = np.array([1, 2, 3])
    print A.shape
    print A[:, None].shape
    

    Output:

    (3,)
    (3,1)
    
    0 讨论(0)
  • 2020-12-09 16:00

    I am not sure if you want something like:

    a = np.array( [ [1,2],[3,4] ] )
    b = np.array( [ 5,6 ] )
    
    c = a.ravel()
    con = np.concatenate( (c,b ) )
    
    array([1, 2, 3, 4, 5, 6])
    

    OR

    np.column_stack( (a,b) )
    
    array([[1, 2, 5],
           [3, 4, 6]])
    
    np.row_stack( (a,b) )
    
    array([[1, 2],
           [3, 4],
           [5, 6]])
    
    0 讨论(0)
  • 2020-12-09 16:06

    You can try this one-liner:

    concat = numpy.hstack([a.reshape(dim,-1) for a in [Cscores, Mscores, Tscores, Yscores]])
    

    The "secret" here is to reshape using the known, common dimension in one axis, and -1 for the other, and it automatically matches the size (creating a new axis if needed).

    0 讨论(0)
提交回复
热议问题