Numpy
Numpy 是一个科学计算基础库,提供大量科学计算相关功能,比如:数据统计、矩阵运算、随机数生成、卷积运算等。其核心类型为ndarray(多维数组),可以理解为矩阵。
环境搭建
- 安装numpy
shell
pip install numpy
pip install numpy==1.19.5 # 安装旧版本
- 测试numpy版本
python
import numpy as np
print(np.__version__)
使用
构造数组
np.random.seed(0) # 设置随机数种子,保证每次生成的随机数相同。主要是使用时保障因素影响
函数 | 说明 |
---|---|
np.arange() | 创建数组 np.arange(1, 10, 2) 创建1-9的奇数,步长为2 |
np.array() | 创建数组 |
np.empty() | 创建空数组 开辟内存空间之前有值,会拿过来直接使用 np.empty(2,dtype=int) |
np.zeros() | 创建全0数组 np.zeros(2,dtype=int) |
np.linspace() | 创建等差数列 相当于创建一维数组 np.linspace(0, 10, 5) 生成0-10的5个数 |
np.logspace() | 创建等比数列 相当于创建一维数组 np.logspace(0, 10, 5) |
np.zeros_like() | 创建全0数组,像某个数组一样几行几列 np.zeros_like(np.array([1,2,3])) |
np.flatten() | 将多维数组拉平为一维数组 np.ravel()将数组拉平为一维数组 |
np.random.random() | 随机数 size=1 生成一个随机数 size=2 生成两个随机数 size=(2,3) 生成二维数组 2行3列 |
np.random.randint() | 随机整数 size=1 生成一个随机数 size=2 生成两个随机数 size=(2,3) 生成二维数组 2行3列 |
np.random.randn() | 随机正态分布数 (1) 生成一个随机数 (2) 生成两个随机数 (2,3) 生成二维数组 2行3列 (2,3,4) 生成三维数组 2个3列4列 |
np.random.normal() | 随机正态分布数 |
np.random.shuffle() | 打乱数组 |
np.reshape() | 修改数组 np.reshape((2, 3)) 将数据改为二维数组 2行3列 |
np.copy() | 复制数组 创建不同的内存空间,防止修改源数组 |
np.hstack() | 水平拼接数组 行数相同,列数合并 |
np.vstack() | 垂直拼接数组 列数相同,行数合并 |
np.concatenate() | 拼接数组 np.concatenate([a,b],axis=0) 垂直拼接,相当于np.vstack() np.concatenate([a,b],axis=1) 水平拼接,相当于np.hstack() |
np.split() | 分割数组 hsplit(水平切分)/vsplit(垂直切分) np.split(arr,3) 将数组均等分割成3份 np.split(arr,3,axis=0) 将数组均等分割成3份,按照行数进行分割 np.split(arr,3,axis=1) 将数组均等分割成3份,按照列数进行分割 |
np.tranpose() | 转置数组 np.transpose(arr) |
python
import numpy as np
arr = np.arange(1, 4) #numpy.ndarray 数据类型 start=1 stop=4(不包含) step=1 步长
arr.shape # (3,) 一元数组 3个元素
arr.shapep[0] # 3 获取元素
arr.ndim # 轴的数量或者维度数量
arr.flags # 对象的内存信息
# array数组
np.array([1, 2, 3],[4, 5, 6]) ndmin=2 # 二维数组 dtype=float # 数据类型
# split
np.split(arr,[3,5]) 按照索引3、5进行分割,最后形成数据索引(0,3],(3,5],(5,]
算术运算
函数 | 说明 |
---|---|
np.add() | 数组相加,相同位置相加 np.add(a,b,out=y) 输出结果到y a+b |
np.subtract() | 数组相减 np.subtract(a,b) |
np.multiply() | 数组相乘 np.multiply(a,b) |
np.divide() | 数组相除 np.divide(a,b) |
np.sin() | 数组正弦 np.sin(a) |
np.cos() | 数组余弦 np.cos(a) |
np.tan() | 数组正切 np.tan(a) |
np.pi | 属性数组π np.pi |
np.around() | 四舍五入 np.around(a) np.around(4.5) = 4 |
np.floor() | 向下取整 np.floor(a) |
np.ceil() | 向上取整 np.ceil(a) |
python
import numpy as np
a = np.arange(9).reshape(3, 3)
# 输出结果
array(
[[0,1,2],
[3,4,5],
[6,7,8]]
)
c = np.array([2,3,4])
a+c # 每行位置相加 广播机制
# 输出结果
array(
[[2,4,6],
[5,7,9],
[8,10,12]]
)
聚合函数
函数 | 说明 |
---|---|
np.sum() | 求和 np.sum(a) |
np.prod() | 乘积 |
np.mean() | 平均值 |
np.std() | 标准差 |
np.var() | 方差 |
np.median() | 中位数 |
np.power() | 幂 np.power(a,2) 平方 |
np.sqrt() | 平方根 |
np.min() | 最小值 |
np.max() | 最大值 |
np.argmin() | 最小值下标 |
np.argmax() | 最大值下标 |
np.inf | 无穷大 |
np.exp() | 指数 |
np.log() | 对数 |