zoukankan      html  css  js  c++  java
  • np.concatenate函数

    原文链接

    numpy.concatenate((a1a2...)axis=0)

    1、测试代码

     a = np.array([[1, 2], [3, 4]])
     b = np.array([[5, 6]])               b是一个二维array
     np.concatenate((a, b), axis=0)

    结果

    array([[1, 2],
           [3, 4],
           [5, 6]])
    结论:列数必须相同,添加新的一行
    2、测试代码
    np.concatenate((a, b.T), axis=1)

    结果

    array([[1, 2, 5],
           [3, 4, 6]])

    结论:将b转置后添加新的一列
    3、测试代码
    a = np.array([[1, 2], [3, 4]])                a、b的shape为(2,2),连接第一维就变成(4,2),连接第二维就变成(2,4)
    b = np.array([[5, 6], [7, 8]])
    np.concatenate((a,b),axis=0)
    结果:4行2列
    array([[1, 2], [3, 4], [5, 6],
    [7, 8]])
    4、测试代码
     c = np.concatenate((a,b),axis=1)
     c.shape  #查看c的维数大小

    结果:2行4列

    array([[1, 2, 5, 6],
           [3, 4, 7, 8]])
    
    (2, 4)
    5、高维数的连接(例如我之前使用matlab写的hd5格式的数据)

    concatenate([a, b])

    连接,连接后ndim不变,a和b可以有一维size不同,但size不同的维度必须是要连接的维度

    例如,a.shape为(4,5,6,10),b.shape为(4,5,6,20)

    np.concatenate([a,b], axis=3) # 返回张量的shape为(4,5,6,30)
     
     
     
    有助于理解的例子。第一个例子是一维的,这一维全是数字,第二个例子是二维的,实际上可以看作将数字换成向量的一维的array。第一个例子axis=0把所有的数字
    连接,第二个例子axis=0就可以把所有的向量连接。第二个例子中axis=1,这表明axis=0的个数不发生变化,只变化axis=1。axis=0不发生变化,那两个array对
    应的axis=0的元素就可以进行连接。这两个array中的元素是一维向量,就对一维向量进行连接(其实这时候就相当于第一个例子中的连接了)。
    若把axis=1中的数字换成一维向量就可以推广到3维的axis=1时的变化,若换到更高维可以推广到更高维的变化。
  • 相关阅读:
    控制器的功能和工作原理
    数据通路的功能和基本结构
    指令的执行过程
    CPU的功能和基本组成结构
    CSS介绍
    html内容
    web简单介绍
    事务隔离机制介绍
    多版本并发控制MVCC
    数据库锁机制
  • 原文地址:https://www.cnblogs.com/andrew-address/p/12783562.html
Copyright © 2011-2022 走看看