NumPy – 数组与矩阵操作

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

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 提供了执行线性代数运算的函数,例如矩阵乘法、特征值计算等。
  • 三角函数和对数函数:该库提供了相关函数

推荐