zoukankan      html  css  js  c++  java
  • 【NumPy】What does axis/axes mean in Numpy

    在网上找到篇英文文章解释NumPy axes的,非常好理解,感兴趣的同学可以直接点击右侧的链接观看——> Numpy axes explained by Joshua Ebner


    以下是我看完该文后的个人摘录:

    NumPy axes就像是坐标系中的轴

    先看一幅图——笛卡尔坐标系

    一个二维的笛卡尔坐标系有两个轴——x轴和y轴,在笛卡尔空间中,这两个轴表示的就是直角的方向。如x轴,是指向右边的直角方向,而y轴则是指向上边的直角方向。

    以坐标(2, 3)举例,2位于x轴,沿着x轴方向前进了2个单位。3位于y轴,沿着y轴方向前进了3个单位。

    NumPy axes的作用和笛卡尔坐标类似,也是沿着什么方向前进。比如当axis分别等于0和1时,分别是沿着行和列的方向前进

    Axis 0是沿着行前进的方向

    Axis 1是沿着列前进的方向

    NumPy数组的axes起始值是0

    Python列表的元素的索引值是从0开始计数的,NumPy数组的axes值和Python列表的索引值一样,也是从0开始计数的。

    举例说明如何使用NumPy的axes

    以函数sum举例

    首先,导入numpy,创建一个shape为(2, 3)的数组,初始值设为0到6的序列.

    import numpy as np
    np_array_2d = np.arange(0, 6).reshape([2,3])
    print(np_array_2d)
    #output:
    #[[0 1 2]
    # [3 4 5]]
    

    然后使用numpy的sum函数,axis设为0,沿着行方向将元素进行相加

    np.sum(np_array_2d, axis = 0)
    #output:
    #array([3, 5, 7])
    

    利用同样的数据np_array_2d,使用sum函数,将axis设为1,沿着列方向将元素进行相加

    np.sum(np_array_2d, axis = 1)
    #output:
    #array([3, 12])
    

    以函数concatenate举例

    创建两个相同shape的numpy数组,值分别填充为全1和全9

    np_array_1s = np.array([[1,1,1],[1,1,1]])
    np_array_9s = np.array([[9,9,9],[9,9,9]])
    print(np_array_1s)
    #output:
    #array([[1, 1, 1],
    #       [1, 1, 1]])
    print(np_array_9s)
    #output:
    #array([[9, 9, 9],
    #       [9, 9, 9]])
    

    使用concatenate函数将这两个数组相连,axis设为0,沿着行方向进行拼接

    np.concatenate([np_array_1s, np_array_9s], axis = 0)
    #output:
    #array([[1, 1, 1],
    #       [1, 1, 1],
    #       [9, 9, 9],
    #       [9, 9, 9]])
    

    和上面一样,同样的数据和操作,将axis改为1,沿着列方向进行拼接

    np.concatenate([np_array_1s, np_array_9s], axis = 1)
    #output:
    #array([[1, 1, 1, 9, 9, 9],
    #       [1, 1, 1, 9, 9, 9]])
    

    关于1维数组的axis

    1维数组只有一个axis

    关于3维数组的axis

  • 相关阅读:
    初等数论及其应用——Lucas定理
    数据结构编程实验——chapter10-应用经典二叉树编程
    Coursera课程 Programming Languages 总结
    Coursera课程 Programming Languages, Part C 总结
    读《如何阅读一本书》有感
    Educational Codeforces Round 34
    Coursera课程 Programming Languages, Part B 总结
    Codeforces #451 Div2 F
    Codeforces #452 Div2 F
    Coursera课程 Programming Languages, Part A 总结
  • 原文地址:https://www.cnblogs.com/liushengchieh/p/14900156.html
Copyright © 2011-2022 走看看