Title

数据分析之numpy模块

Numpy

Numpy是Numerical Python的简写,主要可以用来做Python数值计算。它提供了多种数据结构、算法以及大部分涉及Python数值计算所需的接口。

  • 快速、高效的多维数组对象ndarray

  • 基于元素的数组计算以及直接对数组执行数学运算的函数

  • 用于读写硬盘上基于数组的数据集的工具

  • 线性代数运算、傅里叶变换,以及随机数生成

  • 用于将C、C++、Fortran代码集成到python的工具

安装方法:

pip install numpy

引用方式:

import numpy as np

如何使用

1).ndarray -多维数组对象

 

 

 

通过ndarray这个多维数组对象可以让这些批量计算变得更加简单,当然这只它其中一种优势,接下来就通过具体的操作来发现。

  • 创 建ndarray对象

np.array()

 

 

 

有的人可能会说了,这个数组跟Python中的列表很像啊,它和列表有什么区别呢?

  • 数组对象内的元素类型必须相同

  • 数组大小不可修改

常用属性

属性描述 
T 数组的转置(对高维数组而言)  
dtype 数组元素的数据类型  
size 数组元素的个数  
ndim 数组的维数  
shape 数组的维度大小(以元组形式)  

示例:

 

 

 

数据类型

  • dtype

类型描述 
布尔型 bool_  
整型 int_ int8 int16 int32 int 64  
无符号整型 uint8 uint16 uint32 uint64  
浮点型 float_ float16 float32 float64  
复数型 complex_ complex64 complex128  
整型:
int32只能表示(-2**31,2**31-1),因为它只有32个位,只能表示2**32个数

无符号整型:
只能用来存正数,不能用来存负数

补充:
astype()方法可以修改数组的数据类型

强制转换

 

 

 

numpy的方法合集

方法描述 
array() 将列表转换为数组,可选择显式指定dtype  
arange() range的numpy版,支持浮点数  
linspace() 类似arange(),第三个参数为数组长度  
zeros() 根据指定形状和dtype创建全0数组  
ones() 根据指定形状和dtype创建全1数组  
empty() 根据指定形状和dtype创建空数组(随机值)  
eye() 根据指定边长和dtype创建单位矩阵  

 

 

 

方法演示:

 

 

 

数组的转换

  • 将一维数组转换成二维数组

 

 

 

  • 将二维数组转换成一维数组

 

 

 

索引

  • 普通索引

一维数组和python的列表一样,二维数组分别根据行和列索引

 

 

 

  • 布尔索引

 

 

 

  • 花式索引

 

 

 

切片

  • 一维数组的切片

 

 

 

  • 二维数组的切片

 

 

 

注意:切片不会拷贝,直接使用的原视图,如果硬要拷贝,需要在后面加.copy()方法

 

 

 

最后会发现修改切片后的数据影响的依然是原数据。有的人可能对一点机制有一些不理解的地方,像Python中内置的都有赋值的机制,而Numpy去没有,其实是因为NumPy的设计目的是处理大数据,所以你可以想象一下,假如NumPy坚持要将数据复制来复制去的话会产生何等的性能和内存问题。

数组的向量运算和矢量运算

 

 

常见通用函数: 能够接受一个数组的叫做一元函数,接受两个数组的叫二元函数,结果返回的也是一个数组

  • 一元函数:

函数功能 
abs、fabs 分别是计算整数和浮点数的绝对值  
sqrt 计算各元素的平方根  
square 计算各元素的平方  
exp 计算各元素的指数e**x  
log 计算自然对数  
sign 计算各元素的正负号  
ceil 计算各元素的向上取整的值,保留dtype  
floor 计算各元素的向下取整的值,即小于等于该值的最大整数,保留dtype  
rint 计算各元素的值四舍六入五成双到最接近的整数,保留dtype  
modf 将数组的小数部分和整数部分以两个独立数组的形式返回,与Python的divmod方法类似  
isnan 判断是否是nan  
isinf 表示那些元素是无穷的布尔型数组  
cos,sin,tan 普通型和双曲型三角函数  
  • 二元函数:

函数功能 
add 将数组中对应的元素相加  
subtract 从第一个数组中减去第二个数组中的元素  
multiply 数组元素相乘  
divide、floor_divide 除法或向下圆整除法(舍弃余数)  
power 对第一个数组中的元素A,根据第二个数组中的相应元素B计算A**B  
maximum,fmax 计算最大值,fmax忽略NAN  
miximum,fmix 计算最小值,fmin忽略NAN  
mod 元素的求模计算(除法的余数)  

部分函数演示

补充内容:浮点数特殊值

浮点数:float 浮点数有两个特殊值:

1、nan(Not a Number):不等于任何浮点数(nan != nan)
---------------------------------------------
2、inf(infinity):比任何浮点数都大
---------------------------------------------
  • Numpy中创建特殊值:np.nan、np.inf

  • 数据分析中,nan常被用作表示数据缺失值

 

数学统计方法

函数功能 
sum 求和  
cumsum 求前缀和,即当前位置的参数和前面所有的参数相加  
mean 求平均数  
std 求标准差  
var 求方差  
min 求最小值  
max 求最大值  
argmin 求最小值索引  
argmax 求最大值索引  

 

 

随机数

随机数生成函数在np.random的子包当中

常用函数

函数功能 
rand 给定形状产生随机数组(0到1之间的数)  
randint 给定形状产生随机整数  
chocie 给定形状产生随机选择  
shuffle 与random.shuffle相同  
uniform 给定形状产生随机数组(正态分布)  

 

posted @ 2020-03-31 23:41  Mr江  阅读(227)  评论(0编辑  收藏  举报