在使用这几个函数时遇到一些问题记录一下,个人理解,不一定正确。

问题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函数相关推荐

  1. python中tile的用法_Python:numpy中的tile函数

    在学习机器学习实教程时,实现KNN算法的代码中用到了numpy的tile函数,因此对该函数进行了一番学习: tile函数位于python模块 numpy.lib.shape_base中,他的功能是重复 ...

  2. numpy中的tile函数

    tile()函数可以很方便的生成多维数组.它有两个参数,第一个数是原始数组;第二个表示如何来生成,第一个数字表示生成几行,第二个表示每行有多少个原始数组(如果只写一个数字,那么就默认是一行). fro ...

  3. 图解Numpy的tile函数

    Numpy的 tile() 函数,就是将原矩阵横向.纵向地复制.tile 是瓷砖的意思,顾名思义,这个函数就是把数组像瓷砖一样铺展开来. 举个例子,原矩阵: mat = array([[1,2], [ ...

  4. python自带的sum()函数和numpy库中的sum()函数的区别

    在学习<机器学习实战>一书的第十章时,对 return np.sqrt(sum(np.power(vecA - vecB, 2))) 这样一条语句输出的结果老是不对,明明想要输出的是对两个 ...

  5. numpy中tile函数

    tile函数位于python模块numpy.lib.shape_base中,他的功能是重复某个数组. 函数的形式是tile(A,reps) 函数参数说明中提到A和reps都是array_like的,什 ...

  6. Numpy中tile函数的用法

    tile函数的功能是重复某个数组,位于Numpy模块numpy.lib.shape_base中 下边通过具体例子来说明tile函数的具体用法: 1.通过一个数字来说明重复的次数 #!/usr/bin/ ...

  7. [转载] 【python系列】numpy中的tile函数

    参考链接: Python中的numpy.tile tile函数 在看机器学习实战这本书时,遇到numpy.tile(A,B)函数,愣是没看懂怎么回事,装了numpy模块后,实验了几把,原来是这样子: ...

  8. Numpy的tile函数

    1.函数的定义与说明 tile函数是模板numpy.lib.shape_base中的函数. 函数的形式是tile(A,reps) 函数参数说明中提到A和reps都是array_like的,什么是arr ...

  9. 详解numpy中argsort函数

    当你不了解一个函数的时候,你可以采用两种方式:一种输入来了解函数 print(help(np.argsort)) 要么就是 直接 点进函数来看函数的源代码,可能源代码都是英文,不太好理解,没有关系,我 ...

  10. Numpy:np.tile()函数

    Numpy:np.tile函数 np.arange()函数 np.tile()函数 np.arange()函数 np.arange()函数返回的是一个有终点和起点的固定步长的排列,其中np.arang ...

最新文章

  1. android 之RadioButton单选控件
  2. 解析Vue.js中的computed工作原理
  3. 安装Apache的步骤
  4. Django REST framework+Vue 打造生鲜超市(六)
  5. 使用eclipse生成文档(javadoc)
  6. python36中文手册_python36中文手册_python_36_文件操作4
  7. 内网转外网方法 Sunny-Ngrok
  8. 王思聪在京被执行案和解了!已履行5000万
  9. python wmi读取网卡MAC地址、CPU序列号、硬盘序列号、主板序列号、BIOS序列号
  10. 力扣题目——700. 二叉搜索树中的搜索
  11. Error starting ApplicationContext. To display the auto-configuration report re-run your application
  12. HTML制作qq空间主页
  13. MATLAB与Hspice联合仿真
  14. 西门子PLC 和v90 伺服变频器G120通讯
  15. java实现科学计算器
  16. 三个生活中最常见的产品的嵌入式分析:台灯、智能手环、电视盒
  17. 基本表改变视图不改变为什么_为什么说10万本金以下穷人玩股票一般都会赔?不改变穷人思维,还不如退出股市...
  18. 第一阶段:2014年10月13日-12月14日,36天完成。每周5天,8周完成。
  19. pdfpcell 怎么设置单元格大小_word怎么设置单元格大小
  20. 串级PID 位置环+速度环

热门文章

  1. 平面设计PS素材网站,强推
  2. [渝粤教育] 长安大学 液压传动 参考 资料
  3. [android issue解析] fd leakage cause app ANR
  4. 郭天祥 十天搞定单片机 (2)流水灯+蜂鸣器+调试
  5. 高通SM660平台GPS 简介
  6. 华为手机热点无法连接_为什么电脑就是连不上华为手机的热点
  7. 紫书刷题记录 UVa1572 自组合
  8. 公众号吸粉实操之qq群吸粉
  9. app开发人员配置【职责】
  10. lumion功能介绍丨 建筑动画丨实时渲染