html
NumPy 简介:Python 科学计算的基础
NumPy 是 Python 中用于科学计算的基础库。它为多维数组和矩阵提供了强大的支持,以及广泛的函数来处理它们。NumPy 是数据分析师、机器学习专家和科研工作者不可或缺的工具。
NumPy 能够高效处理大量数据并执行数学运算,用紧凑且向量化的代码替代循环。该库包含用于线性代数和统计的内置函数。
安装和导入 NumPy 库
要开始使用 NumPy,您需要安装它并将其导入到您的项目中。
安装 NumPy
库的安装通过以下方式完成
处理缺失值 (NaN)
NumPy 使用 np.nan 来处理缺失值。
arr = np.array([1, 2, np.nan, 4, 5])
print(np.isnan(arr)) # [False False True False False]
为了处理 NaN,可以使用诸如 nanmean()、nanstd()、nansum() 等特殊函数,它们会忽略缺失值。
NumPy 与纯 Python 的性能对比
NumPy 是用 C 语言编写的,运行速度比纯 Python 快得多,尤其是在对大型数组执行操作时。这得益于高效的向量化和优化。
import time
import numpy as np
size = 100000
# Python list
lista = list(range(size))
listb = list(range(size))
starttime = time.time()
resultpython = [a + b for a, b in zip(lista, listb)]
pythontime = time.time() - starttime
# NumPy array
anp = np.arange(size)
bnp = np.arange(size)
starttime = time.time()
resultnumpy = anp + bnp
numpytime = time.time() - starttime
print(f"Python time: {pythontime:.4f} seconds")
print(f"NumPy time: {numpytime:.4f} seconds")
在处理大量数据时,性能差异可能达到数十倍甚至数百倍。
NumPy 的实际应用案例
NumPy 被用于各个领域:
- 科学:处理实验数据
- 金融:分析时间序列
- 机器学习:数据准备和归一化、建模
- 计算机图形学:图像处理
- 教育:数学函数和算法的可视化
常见问题解答 (FAQ)
NumPy 数组与 Python 列表有何不同?
NumPy 数组是一种数据结构,以表格(张量)形式存储数字,具有固定的数据类型并支持向量化操作。Python 列表更灵活,但对于数值计算效率较低。
如何创建一个 3x3 的零矩阵?
matrix = np.zeros((3, 3))
如何转置矩阵?
transposedmatrix = matrix.T
如何将矩阵相乘?
result = matrix1 @ matrix2
如何求逆矩阵?
inversedmatrix = np.linalg.inv(matrix)
NumPy 函数的主要类别
NumPy 为各种任务提供了广泛的函数:
- 创建数组:NumPy 提供了许多函数来创建和初始化具有不同初始值(零、一、随机数等)的数组。
- 数学运算:该库支持对数组进行多种数学运算,包括算术运算、统计函数和线性代数函数。
- 线性代数函数:NumPy 提供了执行线性代数运算的函数,例如矩阵乘法、特征值计算等。
- 三角函数和对数函数:该库提供了相关函数