数据分析--numpy基础
Numpy
一、简介
Numpy是高性能科学计算和数据分析的基础包。它也是pandas等其他数据分析的工具的基础,基本所有数据分析的包都用过它。
NumPy为Python带来了真正的多维数组功能,并且提供了丰富的函数库处理这些数组。它将常用的数学函数都支持向量化运算,使得这些数学函数能够直接对数组进行操作,将本来需要在Python级别进行的循环,放到C语言的运算中,明显地提高了程序的运算速度。
安装方法:
pip install numpy
引用方式:
import numpy as np
这是官方推荐的导入方式,不要用 from numpy import * ,因为有可能与Python中自带的一些方法冲突,例如 max 、 min 等。
二、ndarray -多维数组对象
Numpy的核心特征就是N-维数组对——ndarray.
2.1、ndarray是一个多维数组列表
这个数组跟Python中的列表的区别:
数组对象内的元素类型必须相同
数组大小不可修改
2.2、常用属性
T:数组的转置(对高维数组而言)
dtype:数组元素的数据类型
size: 数组元素的个数
ndim: 数组的维数
shape: 数组的维度大小(以元组形式)
2.3、数据类型
dtype:
布尔型: bool_
整型: int_int8 int16 int32 int 64
无符号整型: uint8 uint16 uint32 uint64
浮点型: float_ float16 float32 float64
复数型: complex_ complex64 complex128
2.4、ndarray-创建
创建方法:
array(): 将列表转换为数组,可选择显式指定dtype
arange(): range的numpy版,支持浮点数。顾头不顾尾
linspace(): 类似arange(),第三个参数为数组长度。顾头也顾尾
zeros(): 根据指定形状和dtype创建全0数组,
ones(): 根据指定形状和dtype创建全1数组
empty(): 根据指定形状和dtype创建空数组(随机值)
eye(): 根据指定边长和dtype创建单位矩阵
补充:
astype()方法可以修改数组的数据类型
int32只能表示(-231,231-1),因为它只有32个位,只能表示2**32个数
无符号整型,只能用来存正数,不能用来存负数
7、简单运算、索引和切片
简单运算:
数组和标量(数字)之间运算:arr * 3
同样大小数组之间的运算:arr1 + arr2
索引:
reshape() 改变数组的维数
arr[3,2] 数组索引写法
切片:不拷贝直接修改原数据,需要拷贝则用.copy()
arr[1:4, 1:5] 先行后列,顾头不顾尾。
三、通用函数
能对数组中所有元素同时进行运算的函数就是通用函数
常见通用函数:
能够接受一个数组的叫做一元函数,接受两个数组的叫二元函数,结果返回的也是一个数组
一元函数:
abs、fabs:分别是计算整数和浮点数的绝对值
sqrt: 计算各元素的平方根
square: 计算各元素的平方
exp: 计算各元素的指数e**x
log: 计算自然对数
sign: 计算各元素的正负号
ceil: 计算各元素的ceiling值
floor: 计算各元素floor值,即小于等于该值的最大整数
rint: 计算各元素的值四舍五入到最接近的整数,保留dtype
modf: 将数组的小数部分和整数部分以两个独立数组的形式返回,与Python的divmod方法类似
isnan: 计算各元素的正负号
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: 给定形状产生随机整数
shuffle: 与random.shuffle相同
uniform: 给定形状产生随机数组