Python进行数据分析的核心库肯定是Pandas,该库差不多可以解决结构化数据的绝大部分处理需求。在《Python数据分析常用函数及参数详解,可以留着以备不时之需 》一文中也已经对该库的常用函数进行了详细介绍。

但是Pandas是构建在Numpy的基础之上的,它的矢量化运算功能在处理数组和矩阵上具有着非常大的优势。虽然普通的数据分析任务可能很少用到Numpy库,但一旦你具有循环需求或是要处理数值型数据时,你应该首先想到该库。

本文整理了该库的一些常用函数和基础知识,整理不易,希望觉得还不错的朋友可以不吝给个赞。

基础介绍


在介绍函数之前先介绍下Numpy库的基本情况,该库最重要的特点就是其ndarray对象,这个对象可以理解成线性代数里面的数组,每个数组有维度和类型等属性。

  • 维度

直观地判断数组对象有几个维度可通过判断其包含在几层[]中,一层[]即为一维。其中,一维数组可看成是向量,二维数组可看成是有行和列的数据,三维数组可看成是有页,且每页中有行和列的数据,至于更高维度就只能意会了。

  • 类型

数组并不是只能存数值型数据,是也可以存字符串的,但它要求元素类型必须一致,不一致时会按照str > float > int的优先级进行类型转变。例如,在一个整数数组中插入字符串,就会将全部元素转成字符串类型。

另外说一下广播机制。通俗地理解广播机制就是当对不同形状的数组进行算术运算时,广播机制会自动将两个数组补全为相同形状的数组。但需要具备以下前提条件之一:两个数组维度数不等时,二者从末尾开始算起的维度的轴长度相等;两个数组维度数相等时,其中一方的有一个维度的长度为1。关于这一点的理解最好是多加练习。

Numpy常用函数分类


为了更好地理解该库的函数,本文将常用的函数按照下面方式进行分类。

其中基础函数包含对象创建、属性查看、切片索引、形状变换等小类;random模块就是一些常用的随机函数;char模块主要是用来处理字符数组类,也就是数组元素是字符串类型的数据;Matlib是Numpy中的矩阵库,矩阵其实是一种特殊的数组,但它必须是二维的;linglg库是属于线性代数的函数库。

后三个库的函数一般常用于科学计算和图像识别等领域,在数据分析中几乎用不上,因此本文不做介绍,但大家应该知道有这两个库,便于有需求时知道Numpy也具备相应的功能。

基础函数


以下均用arr表示数组,np表示numpy库

(1)对象创建

array(object, dtype =None,order =None, ndmin =0) #order为创建方式,C为行方向,F为列方向,默认为C,ndmin指定生成数组的最小维度arange(start=0,stop=4,step=,dtype=) #生成一维数组,不包含stoplinspace(start=,stop=,num=,endpoint=True) #生成一维等差数据,endpoint决定是否包含stop值,默认包含asarray(object,dtype=None,order=None) #将对象转换为数组zeros(shape,dtype=float,order='C') #生成元素全为0的数组ones(shape,dtype=float,order='C') #生成元素全为1的数组eye(N,dtype=float,order='C') #生成对角线元素为1,其余元素为0的N阶矩阵

(2)属性查看

arr.shape #数组的形状arr.ndim#数组的维度arr.size#数组的长度arr.dtype#数组数据类型

(3)切片索引

arr[i] #取i行arr[[i,j]] #取i,j行arr[:,i:j] #取i到j-1列arr[::-1,::-1] #元素反转np.where(condition,x,y) #condition为真的数组中数据赋值x,否则为y

(4)形状变换

arr.reshape(newshape,order=None)#newshape为新维度,元组格式arr.flatten(order='C') #将数组平铺为一维数组,order表示按行还是按列,默认按行arr.T #数组转置arr.transpose()#数组转置np.append(arr,values,axis=None) #axis控制返回什么类型,默认返回的是拼接后的一维数组np.concatenate((arr1,arr2,arr3),axis=0) #可拼接多个数组

(5)统计函数

arr.sum(axis = None) #axis为整数或者元组 arr.mean(axis = None) #计算平均值arr.std(axis = None)#计算标准差 arr.var(axis = None)#计算方差  np.average(arr,axis =None, weights =None)#计算数组的加权平均值,weights中为权重np.median(arr,axis=None)# 计算数组中元素的中位数 arr.argmin(axis=None) ##返回数组最小值的位置 arr.argmax(a)#返回数组最大值的位置 np.dot(arr1,arr2) #数组的点积运算

random库


随机函数在生成练习数据等方面是非常有帮助的,可以重点掌握一下。

np.random.rand(d0,d1,d2,……) #返回输入维度的随机数,随机数服从[0, 1)区间的均匀分布 np.random.randn(d0,d1,d2,……)#返回输入维度的标准正态分布随机数 np.random.normal(loc=0.0,scale=1.0,size=None)#返回输入维度的正态分布随机数,可控制正态分布的期望和方差np.random.randint(low=,high=,size=None,dtype='l') #返回属于[low,high)区间的随机整数,size可为元组 np.random.seed(s) #随机数种子,可保证两次随机数生成的结果一样

结语


Numpy库还有很多概念本文没涉及到,譬如视图、自定义函数等等。但这些概念在数据分析中很少用到,如果有兴趣也是可以深入钻研下的!有时间了也争取把没涉及到的内容再整理发出来,欢迎大家关注!

numpy随机生成01矩阵_Python数据分析Numpy库常用函数详解,提到循环就该想到的库...相关推荐

  1. numpy随机生成01矩阵_NumPy数组基本介绍

    本文作者:孙晓玲 文字编辑:钱梦璇 技术总编:张   邯 NumPy是短语"Numerical Python"的缩写,NumPy库是一个功能强大的Python库,主要用于对多维数组 ...

  2. python的shutil模块是内置的_Python之shutil模块11个常用函数详解,python内置函数是什么...

    Python之shutil模块11个常用函数详解,python内置函数是什么 shutil 是 Python 中的高级文件操作模块,与os模块形成互补的关系,os主要提供了文件或文件夹的新建.删除.查 ...

  3. python对输入的字符串进行解析_python数据类型_字符串常用操作(详解)

    这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 ...

  4. python加密字符串小写字母循环后错两位_python数据类型_字符串常用操作(详解)

    这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 ...

  5. python处理时间的标准数据_python数据分析数据标准化及离散化详解

    本文为大家分享了python数据分析数据标准化及离散化的具体内容,供大家参考,具体内容如下 标准化 1.离差标准化 是对原始数据的线性变换,使结果映射到[0,1]区间.方便数据的处理.消除单位影响及变 ...

  6. python 数据分析模块_Python数据分析pandas模块用法实例详解

    本文实例讲述了Python数据分析pandas模块用法.分享给大家供大家参考,具体如下: pandas pandas10分钟入门,可以查看官网:10 minutes to pandas 也可以查看更复 ...

  7. python100个内置函数详解_Python 63个内置函数详解

    Python 内置函数最全汇总: 1 abs() 绝对值或复数的模 In [1]: abs(-6) Out[1]: 6 2 all() 接受一个迭代器,如果迭代器的所有元素都为真,那么返回True,否 ...

  8. python pandas常用函数_Python pandas常用函数详解

    df.duplicated() 返回各行是否是上一行的重复行 df.drop_duplicates() 删除重复行,如果需要按照列过滤,参数选填['col1', 'col2',-]df.fillna( ...

  9. python中反三角函数用法_Python入门之三角函数atan2()函数详解

    python 的 Python入门之三角函数atan2()函数详解 描述 atan2() 返回给定的 X 及 Y 坐标值的反正切值. 语法 以下是 atan2() 方法的语法: import math ...

最新文章

  1. PCL :K-d tree 2 结构理解
  2. 图解Hbase--大数据平台技术栈07
  3. 电信运营商的云机遇-【软件和信息服务】2015.01
  4. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二十九:LCD模块
  5. c语言如何输入汉字_C语言入门的第一个小程序
  6. MAC OS X10.10+ python3.6 + tensorflow1.3.0
  7. 常用数据库语句(更新)
  8. 贴花纸怎么贴_木纹纸怎么贴? 贴木纹纸的方法与详细步骤
  9. 【Java】线程通信的例子:用两个线程打印 1-100;生产者消费者问题
  10. 【WebRTC---源码篇】(三)Windows/Linux音视频采集封装模块
  11. 量子通信入门相关书籍
  12. JBox2D For Android - hello box2d
  13. linux Centos下磁盘分区及文件系统创建与挂载
  14. ansible 之条件语句 when
  15. 中小型研发团队架构落地实践18篇,含案例、代码
  16. 《博客页面制作》教程
  17. 微信字号调整问题 html,解决h5 开发 ,设置手机字体大小微信设置字体大小 页面变形问题...
  18. MySQL-3个表连接、左连接、右连接-2021/09/06
  19. (4.6.14)android 插桩基本概念plugging or Swap
  20. 实现Linux与windows文件互传

热门文章

  1. eclipse离线安装Activiti Designer插件
  2. php报错处理,关于升级php7后的报错处理
  3. long 雪花算法_一次复杂的雪花算法使用总结
  4. python分析nginx日志_利用python分析nginx日志
  5. 精通oracle能干嘛,五分鍾精通Oracle表空間
  6. 非对称加密原理及RSA加密步骤
  7. linux gdb检查函数栈,Linux - gdb调试
  8. mysql 高并发 卡死,高并发中的卡死状态 -HashMap
  9. FFT变换频谱图中频率刻度的设置方法
  10. 取消ajax请求时页面闪烁,用Ajax+js+jQuery实现无闪烁定时刷新页面