• np.concatenate、numpy.append


    numpy提供了numpy.concatenate((a1,a2,...), axis=0)函数。能够一次完成多个数组的拼接。其中a1,a2,...是数组类型的参数【numpy.concatenate((a1, a2, ...), axis=0, out=None)】

    (1)

    >>> a=np.array([1,2,3])
    >>> b=np.array([11,22,33])
    >>> c=np.array([44,55,66])
    >>> np.concatenate((a,b,c),axis=0)  # 默认情况下,axis=0可以不写
    array([ 1,  2,  3, 11, 22, 33, 44, 55, 66]) #对于一维数组拼接,axis的值不影响最后的结果

    >>> a=np.array([[1,2,3],[4,5,6]])
    >>> b=np.array([[11,21,31],[7,8,9]])
    >>> np.concatenate((a,b),axis=0)
    array([[ 1,  2,  3],
           [ 4,  5,  6],
           [11, 21, 31],
           [ 7,  8,  9]])

    >>> np.concatenate((a,b),axis=1)  #axis=1表示对应行的数组进行拼接
    array([[ 1,  2,  3, 11, 21, 31],
           [ 4,  5,  6,  7,  8,  9]])

     

     



    Neural Network中的concatenate一般就是用来将特征联合,多个卷积特征提取框架提取的特征融合或者是讲输出层的信息进行融合,其实就是维度的一个联合



    除此之外,还提供了 numpy.append(arr, values, axis=None)函数。对于参数规定,要么一个数组和一个数值;要么两个数组,不能三个及以上数组直接append拼接。

    示例2:

    >>> a=np.arange(5)
    >>> a
    array([0, 1, 2, 3, 4])
    >>> np.append(a,10)
    array([ 0,  1,  2,  3,  4, 10])
    >>> a
    array([0, 1, 2, 3, 4])

    >>> b=np.array([11,22,33])
    >>> b
    array([11, 22, 33])
    >>> np.append(a,b)
    array([ 0,  1,  2,  3,  4, 11, 22, 33])

    >>> a
    array([[1, 2, 3],
           [4, 5, 6]])
    >>> b=np.array([[7,8,9],[10,11,12]])
    >>> b
    array([[ 7,  8,  9],
           [10, 11, 12]])
    >>> np.append(a,b)
    array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12])

    numpy的数组没有动态改变大小的功能,numpy.append()函数每次都会重新分配整个数组,并把原来的数组复制到新数组中。

    【concatenate()效率更高,适合大规模的数据拼接】

     

     

  • 相关阅读:
    基于FPGA的64位8级流水线加法器
    【故事证明和概率公理】
    解读两篇最新多元时间序列预测工作
    呼之欲出的jvs低代码以及其他产品2.1.6版本能力大更新
    698. 划分为k个相等的子集 ●●
    信奥中的数学:斐波那契数列
    代码随想录二刷day15
    Flex and Bison 阅读与学习笔记
    【牛客刷题-算法】NC141 判断是否为回文字符串
    13.4 GAS与攻击
  • 原文地址:https://blog.csdn.net/weixin_63016274/article/details/128165444