首页 > 编程语言 > 详细

学校合并与数组合并

时间:2020-10-31 08:47:22      阅读:39      评论:0      收藏:0      [点我收藏+]

numpy中的函数np.concatenate()可用于numpy数组的合并,使用时需要指定axis,如何理解axis的含义呢,这里用学校与学校的合并来打比方。

假设有学校A和学校B,这两个学校都有3个年级,每个年级有2个班,每个班有4个学生,那么这两个学校都可以表示为三维numpy数组:

>>> import numpy as np
>>> school_A = np.array([[[1,2,3,4],[1,2,3,4]],[[1,2,3,4],[1,2,3,4]],[[1,2,3,4],[1,2,3,4]]])
>>> school_B = school_A.copy()
>>> print(school_A)
[[[1 2 3 4]
  [1 2 3 4]]

 [[1 2 3 4]
  [1 2 3 4]]

 [[1 2 3 4]
  [1 2 3 4]]]

现在要将这两个学校合并,有三种方案。

方案一:学校A和学校B的所有年级放在一起,这样新学校就有6个年级。

>>> np.concatenate((school_A,school_B),axis=0)
array([[[1, 2, 3, 4],
        [1, 2, 3, 4]],

       [[1, 2, 3, 4],
        [1, 2, 3, 4]],

       [[1, 2, 3, 4],
        [1, 2, 3, 4]],

       [[1, 2, 3, 4],
        [1, 2, 3, 4]],

       [[1, 2, 3, 4],
        [1, 2, 3, 4]],

       [[1, 2, 3, 4],
        [1, 2, 3, 4]]])

方案二:将学校A和学校B的相同年级的所有班级放在一起,这样新学校还是有3个年级,但每个年级有4个班。

>>> np.concatenate((school_A,school_B),axis=1)
array([[[1, 2, 3, 4],
        [1, 2, 3, 4],
        [1, 2, 3, 4],
        [1, 2, 3, 4]],

       [[1, 2, 3, 4],
        [1, 2, 3, 4],
        [1, 2, 3, 4],
        [1, 2, 3, 4]],

       [[1, 2, 3, 4],
        [1, 2, 3, 4],
        [1, 2, 3, 4],
        [1, 2, 3, 4]]])

方案三:将学校A和学校B的对应班级的所有学生放在一起,这样新学校还是有3个年级,每个年级2个班,但是每个班级有8个学生。

>>> np.concatenate((school_A,school_B),axis=2)
array([[[1, 2, 3, 4, 1, 2, 3, 4],
        [1, 2, 3, 4, 1, 2, 3, 4]],

       [[1, 2, 3, 4, 1, 2, 3, 4],
        [1, 2, 3, 4, 1, 2, 3, 4]],

       [[1, 2, 3, 4, 1, 2, 3, 4],
        [1, 2, 3, 4, 1, 2, 3, 4]]])

学校合并与数组合并

原文:https://www.cnblogs.com/bill-h/p/13904884.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!