美文网首页
Numpy:3维数组的合并 —— 还是3维,但最高维负责计数

Numpy:3维数组的合并 —— 还是3维,但最高维负责计数

作者: 胜负55开 | 来源:发表于2019-11-28 21:03 被阅读0次

    前言:高维数组真正"有意义的数"是最底层的两维。这篇文章中已经明确说明:2维以上的数组,真正"有实际意义数值"的是最底层的两维,甚至可以说是最底层的那一维!

    所以:当多个3维数组需要合并时,已知它们的"最高维/第三维"是没有实际意义,只起计数作用。那么多个3维数组的合并,其实就是"最高维/第三维"这个"计数维"的数值增大而已!

    例如:有4个(5, 20, 20)的3维数组,它们要合并在一起时,其实就变为:(5+5+5, 20, 20) = (15, 20, 20)的一个3维数组。

    包:import numpy as np
    函数:np.concatenate()

    实现很简单,一个例子就明白:

    import numpy as np
    
    a1 = np.zeros( (5, 20, 20) ) + 1
    a2 = np.zeros( (5, 20, 20) ) + 2
    a3 = np.zeros( (5, 20, 20) ) + 3
    a4 = np.zeros( (5, 20, 20) ) + 4
    
    # 一边用一个列表汇总它们,纯粹是为了方便:
    origin_x = [a1, a2, a3, a4]
    
    # 合并:
    array_x = np.concatenate( origin_x, axis = 0 )
    
    # 结果:
    array_x.shape
    Out[4]: (20, 20, 20)
    

    补充:np.concatenate()函数中的"axis参数"怎么理解:
    其实很好理解:原来数据是3维的,即有3个维度,这3个维度的编号就是0、1、2(从左往右、从高到低);现在我们希望是在"最高维/第三维"合并,那axis就是0,即编号为0的那个维度。

    注意:区分和这篇文章的不同:Numpy:2维数组的合并 —— 多一个最高维(3维)来记录

    相关文章

      网友评论

          本文标题:Numpy:3维数组的合并 —— 还是3维,但最高维负责计数

          本文链接:https://www.haomeiwen.com/subject/ddjiwctx.html