目录
- Numpy概述
- array数组
- 数组结构
- 数组类型
- 数值运算
- 排序操作
- 数组形状操作
- 数组生成函数
- 四则运算
- 随机模块
- 文件读写
Numpy概述
NumPy 是 Python 中的一个开源数学库,提供了快速且便捷的数组处理功能,可以用来进行科学计算、数据分析、算法开发等多种任务。NumPy 是 Python 科学计算生态系统的核心组件之一,与众多科学计算相关的库都依赖NumPy。如果你想在 Python 中进行科学计算,那么必须掌握 NumPy 的使用。
导入numpy
import numpy as np
- 普通数组list
可以看出list不能和数值变量进行运算
- numpy中的数组类型是ndarray
- ndarray类型的数组就能和单个数值进行简单运算,过程就是把数字中的每一个元素都与这个数值做运算,即广播机制
- 两个ndarray类型的数值运算
- 和list一样的索引获取值
- 定义多维数组
- ndarray数组不仅可以和单个数值进行运算 相同形状的ndarray也可以进行简单运算,就是对应位置的元素分别进行运算
- ndarray使用shape知道该矩形的尺寸,而list不支持
array数组
可以使用list来转换成ndarray
- 使用dtype获取数组中元素的类型
- 和list 不同的是list的中的元素类型可以不同,ndarray中的元素类型必须相同,如果不同那么会向下转型成一样的,这里有4个int32 一个float64,然后会自动把int32 转成float64
-
ndarray的一些基本操作
-
fill 给数组都填充成一个元素
-
索引 切片等与list 没啥区别
数组结构
- 多维数组即矩阵的一些操作
-
这里做并不会新开辟一块内存,而是都指向同一块内存进行操作要使用copy函数 才是新开内存然后赋值过去
-
使用arange 产生数组,指定左闭右开的区间,和步长
-
产生bool类型的数组
-
使用布尔类型数组,来拿到对应位置arr的元素,相应位置为true就获取,为false就不取
-
数据初始化10个元素的数组
-
使用这种方法给mask赋值
-
在用上面的mask来获取arr1中相应位置元素
-
-
获取特定位置的坐标 使用where 函数
-
通过这种方式返回特定元素
数组类型
-
指定类型
-
我们可以设置ndarray 存储任意类型,一般计算不推荐这样设置
-
使用asarray方法转换类型
-
可以直接通过变量.astype 转换
数值运算
-
sum
-
对列求和
-
对行求和
-
prod 累乘
-
min 最小值
-
max 最大值同理
-
返回最大值或最小值索引
-
std 标准差
-
var 方差
-
clip方法是把小于3的改成3 大于5的改成5
-
round 四舍五入
排序操作
-
sort
-
argsort 返回排序后下标的变化
- searchsorted 在一个已经有序的数组中如果插入一个数组,返回插入元素按照有序的方式插入时,所插入位置的下标
-lexsort函数的使用 先按照第2列升序排序,在2列升序的情况下,按照0列降序排序,返回最终下标数组
数组形状操作
-
shape 查看形状
-
一种改变数组形状的方式
-
reshape 改变数组形状的另一种方式,这里没有改变原数组
尺寸形状要能对应上元素总数量,否则就报错 -
newaxis 增加维度
-
左边增加维度
-
增加多个维度
-
squeeze 压缩维度 把维度为1的轴全部移除
-
转置 不改变原数组
-
数组的连接
-
展开成一维数组
数组生成函数
生成ndarray数组的几种方式
-
直接在参数列表中手写list,或者传入list
-
arange 函数
-
linspace
-
logspace
-meshgrid 生成二维网格
- 返回行向量 返回列向量
- 生成全为0的zeros 和全为1的ones
- empty 元素是随机的
- fill 填充特定值
- zeros_like ones_like 照着给定数组尺寸生成全是0 全是1 的数组
- identity 生成单位阵
四则运算
- multiply
- dot 矩阵相乘
- ==
- 与运算
- 或运算
- 非运算
随机模块
- random.rand
- random.randint
- random.random_sample
- random.normal
- 洗牌
文件读写
先写入一下数字在文本中
使用普通方法读文件到数组中
-
loadtxt
-
savetxt 将数组写到txt中
-
直接读写ndarray 保存形式有.npy .npz
-
save
-
savez