Python之NumPy(axis=0/1/2...)的透彻理解

https://blog.csdn.net/sky_kkk/article/details/79725646

numpy中axis取值的说明
首先对numpy中axis取值进行说明:一维数组时axis=0,二维数组时axis=0,1,维数越高,则axis可取的值越大,数组n维时,axis=0,1,…,n。为了方便下面的理解,我们这样看待:在numpy中数组都有着[]标记,则axis=0对应着最外层的[],axis=1对应第二外层的[],以此类推,axis=n对应第n外层的[]。
下面开始从axis=0,axis=1这两个例子开始,深入透彻的理解numpy中axis的用法。
axis = 0表示对最外层[]里的最大单位块做块与块之间的运算,同时移除最外层[]:
a= np.array([1,2,3])   
a.sum(axis = 0)
>>>6
123
因为只有一层[],所以直接对这一层里的最大单位快1,2,3做运算;
做完加法后本应是[6],但是移除最外层[]后,[]不存在了,所以返回的是6。
a= np.array([[1,2],[3,4]]) 
a.sum(axis = 0)
>>>array([4, 6])
123
有两层[],最外层[]里的最大单位块分别为[1,2],[3,4],对这两个单位块做块与块之间的运算,[1,2]+[3,4] = [4, 6];
做完加法后本应是[[4, 6]],但是移除最外层[]后,原来的两层[]变成一层[],所以返回结果为 [4, 6]。
np.array([[[1,2],[3,4]],[[11,12],[13,14]]])
a.sum(axis = 0)
>>>array([[12, 14], [16, 18]])
123
有三层[],最外层[]里的最大单位块分别为[[1,2],[3,4]],[[11,12],[13,14]],对这两个单位块做块与块之间的运算,[[1,2],[3,4]]  +  [[11,12],[13,14]]  = [[12, 14], [16, 18]];
做完加法后本应是[[[12, 14], [16, 18]]],但是移除最外层[]后,原来的三层[]变成两层[],所以返回结果为[[12, 14], [16, 18]];
axis= 1表示对第二外层[]里的最大单位块做块与块之间的运算,同时移除第二外层[]:
a= np.array([1,2,3])   
a.sum(axis = 1)
>>>ValueError: ‘axis‘ entry is out of bounds
123
因为只有一层[],axis取值只有一个,为0.
a= np.array([[1,2],[3,4]]) 
a.sum(axis = 1)
>>>array([3, 7])
123
有两层[],第二外层[]里的最大单位块有两组(因为有两个第二外层[]),第一组是1,2,第二组是3,4,分别对这两个单位块做块与块之间的运算,第一组结果为1+2=3,第二组结果为3+4=7;
做完加法后本应是[[3],[7]],但是**移除第二外层[]**后,原来的两层[]变成一层[],所以返回结果为[3, 7]。
np.array([[[1,2],[3,4]],[[11,12],[13,14]]])
a.sum(axis = 1)
>>>array([[ 4,  6], [24, 26]])
123
有三层[],第二外层[]里的最大单位块有两组(因为有两个第二外层[]),第一组是[1,2],[3,4],第二组是[11,12],[13,14],分别对这两个单位块做块与块之间的运算,第一组结果为[1,2]+[3,4] = [ 4,  6],第二组结果为[11,12]+[13,14] = [24, 26]
做完加法后本应是[[[ 4,  6]], [[24, 26]]],但是**移除第二外层[]**后,原来的三层[]变成两层[],所以返回结果为[[ 4,  6], [24, 26]]
axis = 3,4,5也如此分析
看懂了这些说明,相信你对axis已经有了深入的理解,以后再也不用怕高维数组关于axis的运算了!

原文地址:https://www.cnblogs.com/cupleo/p/11330373.html

时间: 2024-07-30 23:29:14

Python之NumPy(axis=0/1/2...)的透彻理解的相关文章

Python之NumPy(axis=0 与axis=1)区分

转自:http://blog.csdn.net/wangying19911991/article/details/73928172 https://www.zhihu.com/question/58993137 python中的axis究竟是如何定义的呢?他们究竟代表是DataFrame的行还是列?考虑以下代码: >>>df = pd.DataFrame([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]], columns=["col1&quo

【机器学习算法实现】kNN算法__手写识别——基于Python和NumPy函数库

[机器学习算法实现]系列文章将记录个人阅读机器学习论文.书籍过程中所碰到的算法,每篇文章描述一个具体的算法.算法的编程实现.算法的具体应用实例.争取每个算法都用多种语言编程实现.所有代码共享至github:https://github.com/wepe/MachineLearning-Demo     欢迎交流指正! (1)kNN算法_手写识别实例--基于Python和NumPy函数库 1.kNN算法简介 kNN算法,即K最近邻(k-NearestNeighbor)分类算法,是最简单的机器学习算

[转]python与numpy基础

来源于:https://github.com/HanXiaoyang/python-and-numpy-tutorial/blob/master/python-numpy-tutorial.ipynb python与numpy基础 寒小阳(2016年6月) Python介绍 如果你问我没有编程基础,想学习一门语言,我一定会首推给你Python类似伪代码的书写方式,让你能够集中精力去解决问题,而不是花费大量的时间在开发和debug上同时得益于Numpy/Scipy这样的科学计算库,使得其有非常高效

python中numpy学习

NumPy的主要对象是同种元素的多维数组.这是一个所有的元素都是一种类型.通过一个正整数元组索引的元素表格(通常是元素是数字).在NumPy中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank). 例如,在3D空间一个点的坐标 [1, 2, 3] 是一个秩为1的数组,因为它只有一个轴.那个轴长度为3.又例如,在以下例子中,数组的秩为2(它有两个维度).第一个维度长度为2,第二个维度长度为3. [[ 1., 0., 0.], [ 0., 1., 2.]] NumPy的数组类被

python之numpy的基本使用

一.numpy概述 numpy(Numerical Python)提供了python对多维数组对象的支持:ndarray,具有矢量运算能力,快速.节省空间.numpy支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. 二.创建ndarray数组 ndarray:N维数组对象(矩阵),所有元素必须是相同类型. ndarray属性:ndim属性,表示维度个数:shape属性,表示各维度大小:dtype属性,表示数据类型. 创建ndarray数组函数: 代码示例: # -*-

Python之Numpy详细教程

NumPy - 简介 NumPy 是一个 Python 包. 它代表 “Numeric Python”. 它是一个由多维数组对象和用于处理数组的例程集合组成的库. Numeric,即 NumPy 的前身,是由 Jim Hugunin 开发的. 也开发了另一个包 Numarray ,它拥有一些额外的功能. 2005年,Travis Oliphant 通过将 Numarray 的功能集成到 Numeric 包中来创建 NumPy 包. 这个开源项目有很多贡献者. NumPy 操作 使用NumPy,开

Python数据分析-Numpy

Numpy特点 Numpy作为使用Python进行科学计算的常用库,有着如下特点: 提供了N维数组(矩阵),快速高效,矢量数学运算: 高效的Index,不需要循环,因为底层实现采用了C语言开发. 常见的数组和矩阵的方法 数组和矩阵的创建与维度信息 numpy.array() ## 数组的创建 vector = numpy.array([1,2,3,4]) ## 矩阵的创建 matrix = numpy.array([ [1,2,3], [4,5,6], [7,8,9] ]) shape ## 打

python pandas numpy matplotlib 常用方法及函数

import numpy as np import pandas as pd import matplotlib.pyplot as plt ---------------numpy----------------------- arr = np.array([1,2,3], dtype=np.float64) np.zeros((3,6)) np.empty((2,3,2)) np.arange(15) arr.dtype arr.ndim arr.shape arr.astype(np.in

Windows系统下Python与NumPy安装方法

Windows系统下Python与NumPy安装方法 Windows下Python的某些第三方包安装步骤实在是太麻烦了(这里主要以NumPy为例,目前只有遇到安装它的时候出现了很多问题),晚上花了好几个小时才把NumPy科学计算包安装好,在这里描述下安装过程,避免大家走没有必要的弯路. 1,安装Python 首先,运行下载的MSI安装包,选择安装组件时,确保勾上了所有的组件. 特别要注意选上pip和Add python.exe to Path,然后多次点击Next即可完成安装. Python解释