Python NumPy函数入门到精通:详解常用功能并附实战代码示例
NumPy(Numerical Python)是Python科学计算的核心库,广泛应用于数据分析、机器学习、图像处理等领域。
本文总结NumPy最常用的20+个函数,涵盖数组创建、数学运算、统计、形状操作等高频场景,每个函数均提供代码示例,助力快速上手!
一、数组创建函数
1. np.array()
:从列表/元组创建数组
import numpy as np
# 创建一维数组
arr1 = np.array([1, 2, 3])
print(arr1) # 输出: [1 2 3]
# 创建二维数组
arr2 = np.array([[1, 2], [3, 4]])
print(arr2)
# 输出:
# [[1 2]
# [3 4]]
2. np.arange()
:生成等差序列
# 生成0-4的整数
arr = np.arange(5)
print(arr) # 输出: [0 1 2 3 4]
# 从5开始,步长3,直到小于15
arr = np.arange(5, 15, 3)
print(arr) # 输出: [5 8 11 14]
3. np.linspace()
:生成等间隔数
# 在0-1之间生成5个等间距数
arr = np.linspace(0, 1, 5)
print(arr) # 输出: [0. 0.25 0.5 0.75 1. ]
二、数学运算函数
1. 四则运算:np.add()
, np.subtract()
, np.multiply()
, np.divide()
a = np.array([1, 2])
b = np.array([3, 4])
sum_arr = np.add(a, b) # 等价于 a + b
diff_arr = np.subtract(b, a) # 等价于 b - a
print(sum_arr) # 输出: [4 6]
print(diff_arr) # 输出: [2 2]
2. np.sum()
:数组求和
arr = np.array([[1, 2], [3, 4]])
# 全局求和
total = np.sum(arr) # 输出: 10
# 按列求和(axis=0)
col_sum = np.sum(arr, axis=0) # 输出: [4 6]
# 按行求和(axis=1)
row_sum = np.sum(arr, axis=1) # 输出: [3 7]
解释
axis=0
:对每一列的元素求和,结果是一个一维数组,长度为列数。
axis=1
:对每一行的元素求和,结果是一个一维数组,长度为行数。
3. np.mean()
:计算平均值
arr = np.array([2, 4, 6])
avg = np.mean(arr)
print(avg) # 输出: 4.0
三、数组形状操作
1. reshape()
:改变数组维度
arr = np.arange(6) # [0 1 2 3 4 5]
# 转换为2行3列的二维数组
reshaped = arr.reshape(2, 3)
print(reshaped)
# 输出:
# [[0 1 2]
# [3 4 5]]
2. transpose()
:矩阵转置
arr = np.array([[1, 2], [3, 4]])
transposed = arr.transpose()
print(transposed)
# 输出:
# [[1 3]
# [2 4]]
四、线性代数操作
1. np.dot()
:矩阵乘法
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
result = np.dot(a, b)
print(result)
# 输出:
# [[19 22]
# [43 50]]
2. np.linalg.inv()
:求逆矩阵
matrix = np.array([[1, 2], [3, 4]])
inv_matrix = np.linalg.inv(matrix)
print(inv_matrix)
# 输出:
# [[-2. 1. ]
# [ 1.5 -0.5]]
五、随机数生成
1. np.random.rand()
:生成均匀分布随机数
# 生成2行3列的随机数组(范围[0,1))
rand_arr = np.random.rand(2, 3)
print(rand_arr)
# 示例输出:
# [[0.23 0.45 0.89]
# [0.12 0.67 0.33]]
2. np.random.randint()
:生成随机整数
# 生成5个1-10之间的整数
rand_ints = np.random.randint(1, 11, 5)
print(rand_ints) # 示例输出: [3 7 2 9 5]
六、实用筛选与拼接
1. np.where()
:条件筛选
arr = np.array([1, 2, 3, 4])
result = np.where(arr > 2, arr, 0)
print(result) # 输出: [0 0 3 4]
2. np.concatenate()
:数组拼接
a = np.array([1, 2])
b = np.array([3, 4])
combined = np.concatenate([a, b])
print(combined) # 输出: [1 2 3 4]
七、总结与学习建议
掌握上述函数后,你可以:
快速创建和操作多维数组
实现高效的数学计算与统计分析
处理矩阵运算和随机数生成
学习建议:
-
在Jupyter Notebook中逐行运行示例代码
-
尝试修改参数观察结果变化
-
结合实际项目(如数据处理、图像变换)加深理解
扩展阅读:
NumPy官方文档
《Python数据分析基础教程:NumPy学习指南》
文章说明:本文代码均在 NumPy 1.24+ 环境下测试通过。如果对您有帮助,欢迎点赞、收藏、关注!
作者:重生之我要成为PJ大神