一.numpy简介
Numpy是高性能科学计算和数据分析的基础包。它也是pandas等其他数据分析的工具的基础,基本所有数据分析的包都用过它。NumPy为Python带来了真正的多维数组功能,并且提供了丰富的函数库处理这些数组。它将常用的数学函数都支持向量化运算,使得这些数学函数能够直接对数组进行操作,将本来需要在Python级别进行的循环,放到C语言的运算中,明显地提高了程序的运算速度。
安装
pip3 install numpy
使用
import numpy as np
这是官方认证的导入方式,可能会有人说为什么不用from numpy import *
,是因为在numpy当中有一些方法与Python中自带的一些方法,例如max
、min
等冲突,为了避免这些麻烦大家就约定俗成的都使用这种方法。
二.numpy的优势
Numpy的核心特征就是N-维数组对——ndarray.
1.购物车数量和价格的相乘
原生列表不支持直接相乘,需要进行for循环等操作,而转换为ndarray之后就可以直接操作
我们也可以使用方法直接求和
其他的一些操作
三.ndarray是一个多维数组列表对象
有的人可能会说了,这个数组跟Python中的列表很像啊,它和列表有什么区别呢?
- 数组对象内的元素类型必须相同
- 数组大小不可修改
多维数组之间的转换reshape
四.常用属性
T ===> 数组的转置(对高维数组而言) dtype ===> 数组元素的数据类型 size ===> 数组元素的个数 ndim ===> 数组的维度 shape ===> 数组维度的大小(以元组的形式)
五.数据类型
dtype
布尔型:bool_ 整型:int_ int8 int16 int32 int 64 无符号整型:uint8 uint16 uint32 uint64 浮点型:float_ float16 float32 float64 复数型:complex_ complex64 complex128
其中后面带下划线的都是为了和原生python中的类型区分,不带下划线的python中没有该类型,所以可以不带
整型: int32只能表示(-2**31,2**31-1),因为它只有32个位,只能表示2**32个数 无符号整型: 只能用来存正数,不能用来存负数 补充: astype()方法可以修改数组的数据类型
六.ndarray的创建
ndarray的基础方法
array():将列表转换为数组,可选择显式指定dtype
arange():range的numpy版,支持浮点数
alinspace():类似arange(),第三个参数为数组长度
zeros():根据指定形状和dtype创建全0数组
ones():根据指定形状和dtype创建全1数组
empty():根据指定形状和dtype创建空数组(随机值)
eye():根据指定边长和dtype创建单位矩阵
使用代码示例
当在使用时不知道如何使用可以查看他们的帮助(相当于源码)
方法:np.eye(需要使用的方法)+?
七.索引和切片
1.索引
2.切片
3.布尔型索引
现在有这样一个需求:给一个数组,选出数组种所有大于5的数。
4.花式索引
八.通用函数
1.一元函数
函数 | 功能 |
---|---|
abs、fabs | 分别是计算整数和浮点数的绝对值 |
sqrt | 计算各元素的平方根 |
square | 计算各元素的平方 |
exp | 计算各元素的指数e**x |
log | 计算自然对数 |
sign | 计算各元素的正负号 |
ceil | 计算各元素的ceiling值 |
floor | 计算各元素floor值,即小于等于该值的最大整数 |
rint | 计算各元素的值四舍五入到最接近的整数,保留dtype |
modf | 将数组的小数部分和整数部分以两个独立数组的形式返回,与Python的divmod方法类似 |
isnan | 计算各元素的正负号 |
isinf | 表示那些元素是无穷的布尔型数组 |
cos,sin,tan | 普通型和双曲型三角函数 |
2.二元函数
函数 | 功能 |
---|---|
add | 将数组中对应的元素相加 |
subtract | 从第一个数组中减去第二个数组中的元素 |
multiply | 数组元素相乘 |
divide、floor_divide | 除法或向下圆整除法(舍弃余数) |
power | 对第一个数组中的元素A,根据第二个数组中的相应元素B计算A**B |
maximum,fmax | 计算最大值,fmax忽略NAN |
miximum,fmix | 计算最小值,fmin忽略NAN |
mod | 元素的求模计算(除法的余数) |
3.数学统计方法
函数 | 功能 |
---|---|
sum | 求和 |
cumsum | 求前缀和 |
mean | 求平均数 |
std | 求标准差 |
var | 求方差 |
min | 求最小值 |
max | 求最大值 |
argmin | 求最小值索引 |
argmax | 求最大值索引 |
4.随机数
随机数生成函数在np.random的子包当中
函数 | 功能 |
---|---|
rand | 给定形状产生随机数组(0到1之间的数) |
randint | 给定形状产生随机整数 |
chocie | 给定形状产生随机选择 |
shuffle | 与random.shuffle相同 |
uniform | 给定形状产生随机数组 |
98