numpy的argsort和sum和tile函数
在使用这几个函数时遇到一些问题记录一下,个人理解,不一定正确。
问题1: argsort的函数返回值是什么?
比如有语句:
In [40]: distances
Out[40]: array([ 1.48660687, 1.41421356, 0. , 0.1 ])
In [41]: distances.argsort()
Out[41]: array([2, 3, 1, 0])
很奇怪,进行了排序为什么出现的不是排序后的值,help后发现,argsort其实是返回array排序后的下标(或索引)。
比如上面数组排序后结果应该是:[0. , 0.1 , 1.41421356, 1.48660687].
此时0.的位置在排序后第0位,而0.在原array中是第2位,0.1的在排序后在第1位,在原array中是第3位,依次类推。
因为函数返回的排序后元素在原array中的下标,所以返回了2,3, 1, 0.
问题2: sum函数的axis值代表了什么?
axis决定了sum函数作用的轴值(维度)。
当axis为None时,返回array中所有元素的和。如:
In [40]: np.sum([[1,2], [2, 3], [4,5]])
Out[40]: 17
当axis为0时,返回array中所有单元所对应值的和的数组(或值)。如:
In [41]: np.sum([[0, 1, 3], [3, 5, 8], [4, 5, 6]], axis=0)
Out[41]: array([ 7, 11, 17])
In [42]: np.sum([1, 2, 3,4 ,6], axis=0)
Out[42]: 16
当axis为1时,返回array中所有单元内部值的和的数组。如:
In [33]: np.sum([[0, 1], [3, 5], [2, 5]], axis=1)
Out[33]: array([1, 8, 7])
问题3:tile函数作用是什么?
函数原型是:
tile(A, reps)
Construct an array by repeating A the number of times given by reps.
然而我看了很久的help依然不太懂,借助例子可以稍微理解一些。
当reps为单个值时,返回A中元素*reps倍数的array。如:
In [47]: tile([1, 2], 2)
Out[47]: array([1, 2, 1, 2])
解释:2让[1, 2]中元素重复2次,变成[1, 2, 1, 2]
In [48]: tile([1, 2], 1)
Out[48]: array([1, 2])
当reps为二元元组(a, b)或者list时,元组中第二个值b是让整个A中所有元素单元变成b倍,第一个值a让元素变成b倍的A变成a个维度。还是看例子吧:
In [70]: tile([1, 2, 3], (1, 1))
Out[70]: array([[1, 2, 3]])
In [67]: tile([1, 2, 3], (1, 2))
Out[67]: array([[1, 2, 3, 1, 2, 3]])
In [69]: tile([1, 2, 3], (3, 2))
Out[69]:
array([[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3]])
解释:2让[1, 2, 3]变成[1, 2, 3, 1, 2, 3],3让[1, 2, 3, 1, 2, 3]变成最终的结果。
当reps为更高元元组或list时,元组的最后一个值i让整个A中的元素单元变成i倍,设处理后的结果为B,其倒数第二个值j让B中元素单元变成j倍,成C,前面值依次处理上一次处理后的结果,一直到第一个值,最后得到结果。如:
In [83]: tile([1, 2, 3], (4, 3, 2))
Out[83]:
array([[[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3]],
[[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3]],
[[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3]],
[[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3]]])
解释:
2让元素元组[1, 2, 3]变成
[1, 2, 3, 1, 2, 3],
3让[1, 2, 3, 1, 2, 3]变成
[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3]],
3让
[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3]],
变成:
[[[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3]],
[[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3]],
[[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3]],
[[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3]]]
numpy的argsort和sum和tile函数相关推荐
- python中tile的用法_Python:numpy中的tile函数
在学习机器学习实教程时,实现KNN算法的代码中用到了numpy的tile函数,因此对该函数进行了一番学习: tile函数位于python模块 numpy.lib.shape_base中,他的功能是重复 ...
- numpy中的tile函数
tile()函数可以很方便的生成多维数组.它有两个参数,第一个数是原始数组;第二个表示如何来生成,第一个数字表示生成几行,第二个表示每行有多少个原始数组(如果只写一个数字,那么就默认是一行). fro ...
- 图解Numpy的tile函数
Numpy的 tile() 函数,就是将原矩阵横向.纵向地复制.tile 是瓷砖的意思,顾名思义,这个函数就是把数组像瓷砖一样铺展开来. 举个例子,原矩阵: mat = array([[1,2], [ ...
- python自带的sum()函数和numpy库中的sum()函数的区别
在学习<机器学习实战>一书的第十章时,对 return np.sqrt(sum(np.power(vecA - vecB, 2))) 这样一条语句输出的结果老是不对,明明想要输出的是对两个 ...
- numpy中tile函数
tile函数位于python模块numpy.lib.shape_base中,他的功能是重复某个数组. 函数的形式是tile(A,reps) 函数参数说明中提到A和reps都是array_like的,什 ...
- Numpy中tile函数的用法
tile函数的功能是重复某个数组,位于Numpy模块numpy.lib.shape_base中 下边通过具体例子来说明tile函数的具体用法: 1.通过一个数字来说明重复的次数 #!/usr/bin/ ...
- [转载] 【python系列】numpy中的tile函数
参考链接: Python中的numpy.tile tile函数 在看机器学习实战这本书时,遇到numpy.tile(A,B)函数,愣是没看懂怎么回事,装了numpy模块后,实验了几把,原来是这样子: ...
- Numpy的tile函数
1.函数的定义与说明 tile函数是模板numpy.lib.shape_base中的函数. 函数的形式是tile(A,reps) 函数参数说明中提到A和reps都是array_like的,什么是arr ...
- 详解numpy中argsort函数
当你不了解一个函数的时候,你可以采用两种方式:一种输入来了解函数 print(help(np.argsort)) 要么就是 直接 点进函数来看函数的源代码,可能源代码都是英文,不太好理解,没有关系,我 ...
- Numpy:np.tile()函数
Numpy:np.tile函数 np.arange()函数 np.tile()函数 np.arange()函数 np.arange()函数返回的是一个有终点和起点的固定步长的排列,其中np.arang ...
最新文章
- android 之RadioButton单选控件
- 解析Vue.js中的computed工作原理
- 安装Apache的步骤
- Django REST framework+Vue 打造生鲜超市(六)
- 使用eclipse生成文档(javadoc)
- python36中文手册_python36中文手册_python_36_文件操作4
- 内网转外网方法 Sunny-Ngrok
- 王思聪在京被执行案和解了!已履行5000万
- python wmi读取网卡MAC地址、CPU序列号、硬盘序列号、主板序列号、BIOS序列号
- 力扣题目——700. 二叉搜索树中的搜索
- Error starting ApplicationContext. To display the auto-configuration report re-run your application
- HTML制作qq空间主页
- MATLAB与Hspice联合仿真
- 西门子PLC 和v90 伺服变频器G120通讯
- java实现科学计算器
- 三个生活中最常见的产品的嵌入式分析:台灯、智能手环、电视盒
- 基本表改变视图不改变为什么_为什么说10万本金以下穷人玩股票一般都会赔?不改变穷人思维,还不如退出股市...
- 第一阶段:2014年10月13日-12月14日,36天完成。每周5天,8周完成。
- pdfpcell 怎么设置单元格大小_word怎么设置单元格大小
- 串级PID 位置环+速度环