How to insert one ndarray to another ndarray?

前端 未结 2 1667
时光说笑
时光说笑 2020-12-21 16:39

These are two ndarray.

A=[[1,2,3],[4,5,6],[7,8,9]]

B=[[31,42,53],[11,17,29],[100,59,32]]

How to make a new ndarray \'C\' by merge two nda

相关标签:
2条回答
  • 2020-12-21 17:13

    you can use numpy library. like this:

    import numpy as np
    A=[[1,2,3],[4,5,6],[7,8,9]]
    B=[[31,42,53],[11,17,29],[100,59,32]]
    C= np.concatenate((A, B), axis=0)
    

    more information about concatenate with numpy in this link : https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.concatenate.html

    0 讨论(0)
  • 2020-12-21 17:14

    Using array-initialization to achieve that interweaving task -

    def interweave(a, b):
        N = a.shape[1]
        M = a.shape[0] + b.shape[0]
        out_dtype = np.result_type(a.dtype, b.dtype)
        out = np.empty((M,N),dtype=out_dtype)
        out[::2] = a
        out[1::2] = b
        return out
    

    Sample run -

    In [274]: A
    Out[274]: 
    array([[1, 2, 3],
           [4, 5, 6],
           [7, 8, 9]])
    
    In [275]: B
    Out[275]: 
    array([[ 31,  42,  53],
           [ 11,  17,  29],
           [100,  59,  32]])
    
    In [276]: interweave(A, B)
    Out[276]: 
    array([[  1,   2,   3],
           [ 31,  42,  53],
           [  4,   5,   6],
           [ 11,  17,  29],
           [  7,   8,   9],
           [100,  59,  32]])
    

    If A and B are of same shapes, we can also stack and reshape -

    In [283]: np.hstack((A,B)).reshape(-1,A.shape[1])
    Out[283]: 
    array([[  1,   2,   3],
           [ 31,  42,  53],
           [  4,   5,   6],
           [ 11,  17,  29],
           [  7,   8,   9],
           [100,  59,  32]])
    

    Or np.stack((A,B),axis=1).reshape(-1,A.shape[1]).

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