顾文强
顾文强
Published on 2025-03-06 / 10 Visits
0
0

NumPy 库介绍

NumPy 拥有丰富的函数,下面按照不同的功能类别为你较为全面地列出各类函数,并给出简单解释、示例及应用场景。

1. 数组创建

函数

解释

示例

应用场景

np.array()

从 Python 列表、元组等创建数组

np.array([1, 2, 3])

通用的数据转换,将 Python 序列转换为 NumPy 数组进行数值计算

np.zeros()

创建指定形状的全零数组

np.zeros((2, 3))

初始化权重矩阵、占位数组等

np.ones()

创建指定形状的全一数组

np.ones((3, 2))

初始化需要统一初始值的数组,如在某些统计计算中

np.empty()

创建指定形状的未初始化数组,内容是随机的

np.empty((2, 2))

当你后续会立即填充数组内容,避免初始化开销时使用

np.arange()

生成等差数列数组

np.arange(0, 10, 2)

生成索引序列、采样序列等

np.linspace()

在指定区间内生成等间隔的数组

np.linspace(0, 1, 5)

生成绘图用的 x 轴坐标、插值计算等

np.logspace()

在对数刻度上生成等间隔的数组

np.logspace(0, 2, 3)

处理对数尺度的数据,如信号处理中的频率范围

np.eye()

创建单位矩阵

np.eye(3)

线性代数中的矩阵运算,如矩阵求逆、求解线性方程组等

np.identity()

创建单位矩阵,功能与 np.eye() 类似

np.identity(3)

同上

2. 数组操作

函数

解释

示例

应用场景

np.reshape()

改变数组的形状

np.arange(6).reshape((2, 3))

数据格式转换,调整数组维度以适应不同算法需求

np.transpose()

数组转置

np.transpose(np.array([[1, 2], [3, 4]]))

矩阵运算中常见操作,如矩阵乘法前后的维度调整

np.flatten()

将多维数组展平为一维数组

np.array([[1, 2], [3, 4]]).flatten()

数据序列化,便于进行一维数据处理

np.ravel()

flatten() 类似,但返回的是视图而非副本

np.ravel(np.array([[1, 2], [3, 4]]))

避免数据复制带来的内存开销,快速访问多维数组元素

np.concatenate()

沿指定轴连接多个数组

np.concatenate((np.array([1, 2]), np.array([3, 4])))

数据合并,如将多个样本数据合并成一个大的数据集

np.vstack()

垂直堆叠数组(按行)

np.vstack((np.array([1, 2]), np.array([3, 4])))

合并具有相同列数的多个二维数组

np.hstack()

水平堆叠数组(按列)

np.hstack((np.array([[1], [2]]), np.array([[3], [4]])))

合并具有相同行数的多个二维数组

np.split()

将数组沿指定轴分割成多个子数组

np.split(np.arange(6), 3)

数据划分,如将数据集划分为训练集和测试集

np.resize()

改变数组的大小,必要时重复填充元素

np.resize(np.array([1, 2]), (3,))

调整数组大小以适应特定的输出要求

3. 数学运算

函数

解释

示例

应用场景

np.add()

数组元素相加

np.add(np.array([1, 2]), np.array([3, 4]))

数值计算中的加法操作,如信号叠加

np.subtract()

数组元素相减

np.subtract(np.array([3, 4]), np.array([1, 2]))

数值计算中的减法操作,如计算差值

np.multiply()

数组元素相乘

np.multiply(np.array([1, 2]), np.array([3, 4]))

逐元素乘法,如图像处理中的像素值调整

np.divide()

数组元素相除

np.divide(np.array([4, 6]), np.array([2, 3]))

数值计算中的除法操作,如计算比例

np.dot()

计算点积,对于二维数组是矩阵乘法

np.dot(np.array([[1, 2], [3, 4]]), np.array([[5, 6], [7, 8]]))

线性代数中的矩阵乘法,机器学习中的神经网络计算

np.matmul()

矩阵乘法,推荐用于矩阵乘法操作

np.matmul(np.array([[1, 2], [3, 4]]), np.array([[5, 6], [7, 8]]))

矩阵乘法相关应用,如变换矩阵运算

np.power()

数组元素求幂

np.power(np.array([2, 3]), 2)

数值计算中的幂运算,如计算平方、立方等

np.sqrt()

计算数组元素的平方根

np.sqrt(np.array([4, 9]))

数学计算中的平方根操作,如距离计算

np.exp()

计算数组元素的指数函数

np.exp(np.array([0, 1]))

自然指数运算,在概率统计、机器学习中常用

np.log()

计算数组元素的自然对数

np.log(np.array([1, np.e]))

对数运算,用于数据变换、概率计算等

4. 统计函数

函数

解释

示例

应用场景

np.mean()

计算数组元素的平均值

np.mean(np.array([1, 2, 3, 4, 5]))

数据分析中描述数据的集中趋势

np.median()

计算数组元素的中位数

np.median(np.array([1, 2, 3, 4, 5]))

数据分析中,当数据存在异常值时,更稳健地描述数据中心位置

np.std()

计算数组元素的标准差

np.std(np.array([1, 2, 3, 4, 5]))

衡量数据的离散程度,如评估数据的稳定性

np.var()

计算数组元素的方差

np.var(np.array([1, 2, 3, 4, 5]))

数据分析中用于衡量数据的离散程度

np.min()

找出数组中的最小值

np.min(np.array([1, 2, 3, 4, 5]))

数据筛选,找出数据中的最小观测值

np.max()

找出数组中的最大值

np.max(np.array([1, 2, 3, 4, 5]))

数据筛选,找出数据中的最大观测值

np.argmin()

找出数组中最小值的索引

np.argmin(np.array([1, 2, 3, 4, 5]))

在需要根据最小值位置进行后续操作时使用

np.argmax()

找出数组中最大值的索引

np.argmax(np.array([1, 2, 3, 4, 5]))

在需要根据最大值位置进行后续操作时使用

np.percentile()

计算数组的指定百分位数

np.percentile(np.array([1, 2, 3, 4, 5]), 50)

数据分析中,用于描述数据的分布情况

5. 逻辑函数


函数

解释

示例

应用场景

np.logical_and()

对数组元素进行逻辑与运算

np.logical_and(np.array([True, False]), np.array([True, True]))

条件筛选,根据多个条件筛选数据

np.logical_or()

对数组元素进行逻辑或运算

np.logical_or(np.array([True, False]), np.array([False, False]))

条件筛选,根据多个条件筛选数据

np.logical_not()

对数组元素进行逻辑非运算

np.logical_not(np.array([True, False]))

条件反转,修改筛选条件

np.where()

根据条件返回数组元素

np.where(np.array([1, 2, 3]) > 2, 1, 0)

数据替换,根据条件对数组元素进行替换

6. 随机数生成

函数

解释

示例

应用场景

np.random.rand()

生成指定形状的 [0, 1) 区间内的均匀分布随机数

np.random.rand(2, 3)

模拟实验、初始化随机权重等

np.random.randn()

生成指定形状的标准正态分布随机数

np.random.randn(2, 3)

模拟高斯噪声、随机初始化神经网络权重

np.random.randint()

生成指定范围内的随机整数

np.random.randint(0, 10, (2, 3))

随机抽样、游戏开发等

np.random.choice()

从给定的一维数组中随机抽取元素

np.random.choice([1, 2, 3], 2)

数据采样、随机选择等

np.random.shuffle()

随机打乱数组元素的顺序

a = np.array([1, 2, 3]); np.random.shuffle(a)

数据打乱,如在机器学习中打乱数据集顺序

np.random.permutation()

返回一个随机排列的数组副本

np.random.permutation(np.array([1, 2, 3]))

数据重排,如在交叉验证中打乱数据顺序

这只是 NumPy 函数的一部分,NumPy 还有很多用于傅里叶变换、线性代数求解等方面的函数,你可以参考 NumPy 官方文档 获取更详细的信息。


Comment