博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Py中axis理解【转载】
阅读量:7118 次
发布时间:2019-06-28

本文共 1254 字,大约阅读时间需要 4 分钟。

转载:

 1.理解

numpy当中axis的值表示的是这个多维数组维度的下标,比如有一个二维数组a,a的shape是(5,6),也就是说a有5行6列,axis=0表示的就是[5,6]中的第一维,也就是行,axis=1表示的是[5,6]中的第二个维度,也就是列。

通常numpy里面的一些降维操作(aggregate functions)需要我们指定对应的维度,比如sum函数表示对哪个维度求和,max表示对哪个维度求最大值。通常当我们在这些函数里面指定了axis=n时,那么函数输出的数组当中,原来的第n维就被消除了,比如下面的例子:

//其实不一定是消除,反正就是那个维发生了变化,增加了或者归为1了。

# 创建一个矩阵a,a的维度为2行3列>>> a = np.array([[1,2,3],[4,5,6]])>>> print a[[1 2 3] [4 5 6]]>>> print a.shape(2, 3)# b表示沿着axis=0(行)这条轴取max,得到的结果就是把输入数组的'行'给消除了,2行变1行>>> b = a.max(axis=0)>>> print b[4 5 6]>>> print b.shape(3,)# c表示沿着axis=1(列)这条轴取max,得到的结果就是把输入数组的'列'给消除了,3列变1列>>> c = a.max(axis=1)>>> print c[3 6]>>> print c.shape(2,)

 

2.例子

>>> a = np.array([[1, 1], [2, 2], [3, 3]])>>> aarray([[1, 1],       [2, 2],       [3, 3]])>>> np.insert(a, 1, 5)array([1, 5, 1, 2, 2, 3, 3])>>> np.insert(a, 1, 5, axis=1)array([[1, 5, 1],       [2, 5, 2],       [3, 5, 3]])

 

在上例当中,插入时axis=1,即对列数进行变化,最终列数增加1,由原来的[3,2]变为[3,3] 。

如果axis=0的话,就是对行数进行改变。

>>> a = np.arange(6).reshape(2,3) + 10>>> aarray([[10, 11, 12],       [13, 14, 15]])>>> np.argmax(a)5>>> np.argmax(a, axis=0)array([1, 1, 1])>>> np.argmax(a, axis=1)array([2, 2])

 

找出最值下标。

0行1列:

0:对列操作,结果为行

1:对行操作,结果为列

比如要对5000*10的矩阵求每行的最值下标,([5000,10],10变化,即列变化)那么axis=1.

转载于:https://www.cnblogs.com/BlueBlueSea/p/10408443.html

你可能感兴趣的文章
linux 环境下git的安装与配置
查看>>
Bootstrap学习笔记
查看>>
Linux配置虚拟主机后,只能访问到主页怎么办?
查看>>
HTTP状态码->HTTP Status Code
查看>>
AVL平衡树的插入例程
查看>>
验证控件的使用
查看>>
会计中的冲销和红票
查看>>
开启和关闭HBase的thrift进程
查看>>
swift学习_xcode6搭建
查看>>
MVC
查看>>
(寻找第K小的数&&寻找第K小的数的和)
查看>>
UVa 642 - Word Amalgamation
查看>>
Linux下编译安装qemu和libvirt
查看>>
VS NuGet使用
查看>>
转载:margin外边距合并问题以及解决方式
查看>>
手机摇一摇功能音量大小跟系统音量一致
查看>>
mysql用一个表更新另一个表的方法
查看>>
一键安装 redmine on windows 和发邮件设置
查看>>
Gradle笔记——构建基础
查看>>
空间矢量数据(.shp文件)之JAVA操作
查看>>