numpy中的axis参数,numpy中axis=1
在numpy中,有很多与轴相关的函数,numpy中的轴非常重要。numpy的很多操作根据axis值的不同而不同。本文主要介绍numpy模块中关于轴的理解和使用的相关信息,有需要的朋友可以参考一下。
00-1010为什么一开始就有轴的概念?axis的作用是如何理解使用axis的相关函数的汇总。
目录
因为numpy模块大部分处理的都是矩阵或者多维数组,而操作多维数组或者矩阵有很多种可能,为了帮助实现数组或者矩阵的各种功能,就有了axis。
例如,选择不同的轴对二维数组执行求和、均值、最小值和最大值运算。
将numpy作为np导入
arr=np.arange(16)。整形(2,4,2)
arrive)
数组([[[ 0,1],
[ 2, 3],
[ 4, 5],
[ 6, 7]],
[[ 8, 9],
[10, 11],
[12, 13],
[14, 15]]])
首先为什么会有axis这个概念?
Numpy是python进行科学计算的必备模块。随着深度学习的普及,numpy也越来越受欢迎。了解numpy的人都知道,在numpy中,很多函数都涉及到轴,很多函数根据轴的不同取值得到完全不同的结果。可以说axis让numpy的多维数组更加灵活,但也让numpy越来越难以理解。这里有一个详细的例子来了解什么是axis以及它在numpy中的作用。
为什么会有轴心这种东西?原因很简单:numpy操作的是矩阵或者大部分是数组,而在多维数组中,操作数据的可能性太多了。我们先来看一个例子。例如,我们有一个二维数组:
将numpy作为np导入
data=np.array([
.[1,2,1],
.[0,3,1],
.[2,1,4],
.[1,3,1]])
该数组表示样本数据的特征,其中每行表示样本的三个特征,每列表示不同样本的特征。如果在样本分析的过程中需要对每个样本的三个特征进行总结,应该怎么做?简单:
np.sum(数据,轴=1)
数组([4,4,7,5])
如果想求每个特征的最小值,应该怎么做?也很简单:
np.min(数据,轴=0)
数组([0,1,1])
如果想知道所有样本所有特征的平均值呢?还是很简单:
np .平均(数据)
1.6666666666666667
可以看出,numpy会通过不同的轴进行不同方向的操作:如果不设置,则操作所有元素;如果轴=0,沿纵轴操作;Axis=1,则沿着水平轴执行操作。但它只是一个简单的两位数组。如果是多维的呢?可以用一句话来概括:设axis=i,那么numpy沿着第I个下标变化的落差进行运算。比如前面的例子,可以表示为:data=[[a00,a01],[a10,a11]],所以当axis=0时,可以沿着第零个下标的方向操作,即a00-a10,a01-a11,即纵坐标的方向,axis=1时也类似。我们举一个求和的四维例子来验证一下:
data=np.random.randint(0,5,[4,3,2,3])
数据
数组([[[[4,1,0],
[4, 3, 0]],
[[1, 2, 4],
[2, 2, 3]],
[[4, 3, 3],
[4, 2, 3]]],
[[[4, 0, 1],
[1, 1, 1]],
[[0, 1, 0],
[0, 4, 1]],
[[1, 3, 0],
[0, 3, 0]]],
[[[3, 3, 4],
[0, 1, 0]],
[[1, 2, 3],
[4, 0, 4]],
[[1, 4, 1],
[1, 3, 2]]],
[[[0, 1, 1],
[2, 4, 3]],
[[4, 1, 4],
[1, 4, 1]],
[[0, 1, 0],
[2, 4, 3]]]])
当axis=0时,numpy验证第0维的方向来求和,也就是第一个元素值=a0000+a1000+a2000+a3000=11,第二个元素=a0001+a1001+a2001+a3001=5,同理可得最后的结果如下:
>>> data.sum(axis=0)
当axis=3时,numpy验证第3维的方向来求和,也就是第一个元素值=a0000+a0001+a0002=5,第二个元素=a0010+a0011+a0012=7,同理可得最后的结果如下:
>>> data.sum(axis=3)
使用axis的相关函数
在numpy中,使用的axis的地方非常多,处理上文已经提到的average、max、min、sum,比较常见的还有sort和prod,下面分别举几个例子看一下:
sort
>>> data = np.random.randint(0, 5, [3,2,3])
prod(即product,乘积)
>>> np.prod([[1.,2.],[3.,4.]])
相信通过上面的讲解与例子,你应该对axis有了比较清楚的了解。个人认为,如果没有理解axis的真正含义,很难熟悉的运用numpy进行数据处理
总结
到此这篇关于numpy模块中axis的理解与使用的文章就介绍到这了,更多相关numpy模块axis内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。