zoukankan      html  css  js  c++  java
  • numpy中axis的通俗理解

    本文转载地址:原文链接:https://blog.csdn.net/u012219371/article/details/93697240

    先说结论

    numpy中的axis与shape有关,shape为一个tuple,这个tuple的index即为所在的axis。

    例如一个ndarray形状为(4,3,2),则4对应的axis为0,3对应的axis为1,2对应的axis为2。

    1 import numpy as np
    2 x=np.arange(24).reshape(4,3,2)
    3 print(x)

    运行结果:

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

    也即,最外层括号axis=0,每向内增加一层括号,axis加1。

    1.求axis=0的最大值:哲学的理念(部分与整体的关系)理解为:

    (定位到最外面的大括号,把整个数组看成一个数,这个数由四部分组成,求最大的一部分。)

    1 print(x.max(axis=0)) //输出最大的一部分

    运行结果:

    1 [[18 19]
    2  [20 21]
    3  [22 23]]

    分析:只看最外层括号,最外层括号内是由4个元素组成,每个元素是由一个3*2的矩阵(二维数组)组成。求axis=0的最大值即求这四个元素的最大值,因为元素为矩阵(3*2),最大值即矩阵element-wise(对应元素)的最大值。例如四个矩阵中第一个元素分别为0、6、12、18,所以最大值为18。以此类推:

     2.求axis=1的最大值:(

    哲学的理念(部分与整体的关系)理解为:去掉最外层的括号

    定位到次外层的括号,此时整个数组有四个整体,求每个整体的最大一部分。

    1 print(x.max(axis=1))//分别输出四个整体的最大部分
    1 [[ 4  5]
    2  [10 11]
    3  [16 17]
    4  [22 23]]

    分析:现在只看axis=0中的每一个3*2矩阵(二维数组),每一个二维数组是由三个元素(一维数组)组成。求axis=1的最大值即求三个元素的最大值,因为元素为矩阵(1*2),最大值即矩阵element-wise(对应元素)的最大值。以第一个矩阵为例:

    1 [[ 0  1],[ 2  3],[ 4  5]]

    其它几个矩阵求法一样。

    3.求axis=2的最大值:(

    哲学的理念(部分与整体的关系)理解为:去掉最外层的括号

    去掉次外层的括号,此时整个数组有12个整体,分别求出12个整体最大的一部分。

    1 print(x.max(axis=2))

    运行结果:

    1 [[ 1  3  5]
    2  [ 7  9 11]
    3  [13 15 17]
    4  [19 21 23]]

    分析:现在只看axis=1中的每一个一维数组。每一个一维数组都是由scalar组成,最大值即为数组中最大的元素,例:

     


    ————————————————
    版权声明:本文为CSDN博主「X+Y=Z」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/u012219371/article/details/93697240

    穷则独善其身,达则兼济天下……
  • 相关阅读:
    让程序只有一个进程实例在运行
    HDFS写入和读取流程
    HBase技术详细介绍
    Eclipse下配置使用Hadoop插件
    Hadoop节点热拔插
    剖析为什么在多核多线程程序中要慎用volatile关键字?
    MapReduce 模式、算法和用例(MapReduce Patterns, Algorithms, and Use Cases)
    并行编程中的“锁”难题
    配置 eclipse 编译、开发 Hadoop(MapReduce)源代码
    HBASE松散数据存储设计初识
  • 原文地址:https://www.cnblogs.com/hmy-666/p/12468532.html
Copyright © 2011-2022 走看看