zoukankan      html  css  js  c++  java
  • Python学习笔记——参数axis=0,1,2...

    在Python程序中,当需要对一些多维的数组或列表进行操作时,经常碰到操作函数中有axis这个参数。那么这个参数应该如何理解呢?axis=0/1/2该怎么区别?下面通过一段示例程序来学习。


    (1)首先定义一个2x3x4的三维数组a:

    a = [[[1,2 ,3 ,4 ],
          [5,6 ,7 ,8 ],
          [9,10,11,12]],
         [[13,14,15,16],
          [17,18,19,20],
          [21,22,23,24]]]

    打印a,输出如下:

    [[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], [[13, 14, 15, 16], [17, 18, 19, 20], [21, 22, 23, 24]]]


    (2)用numpy中的sum函数对a求和,先输入axis=0:

    sum_0 = np.sum(a,axis = 0)
    print(sum_0)

    输出结果是一个3x4的数组,如下:

    [[14 16 18 20]
     [22 24 26 28]
     [30 32 34 36]] 


    (3)再用sum函数对a求和,输入axis=1:

    sum_1 = np.sum(a,axis = 1)
    print(sum_1)

    输出结果是一个2x4的数组,如下:

    [[15 18 21 24]
     [51 54 57 60]] 


    (4)最后用sum函数对a求和,输入axis=2:

    sum_2 = np.sum(a,axis = 2)
    print(sum_2)

    输出结果是一个2x3的数组,如下:

    [[10 26 42]
     [58 74 90]] 


    总结一下,对于一个shape为i*j*k的三维数组a,当执行函数function(a, axis=0)时,相当于在第1个dimension上进行function运算,其他维度的形状保持不变,运算结果的shape为原数组a去掉第一个dimension的sahpe(即j*k),当axis=1或2时同理。当然,axis的取值不限于0/1/2,还可以拓展到高维数组。

  • 相关阅读:
    数据仓库_Linux(3)
    2.1(构造序对)
    要修改一万个位置的jdk版本
    8个球7个一样重的,有一个偏重,一个天平,如何两次找出偏重的小球
    玄学
    异常:java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/LoopTag
    提高输入效率
    fan
    idea
    打印整数的补码
  • 原文地址:https://www.cnblogs.com/yucen/p/9343566.html
Copyright © 2011-2022 走看看