Jupyter Notebook
Jupyter Notebook 是一个开源的网页应用程序,使用户能够创建和分享包含实时代码、公式、可视化和叙述性文本的文档。它被广泛应用于数据科学、机器学习、教育和科研,支持 40 多种编程语言,并可无缝集成 AI 工具。...

NumPy 是一个开源的 Python 库,对于数值计算至关重要,提供高效的数组操作和数学函数。它支持科学计算、数据科学和机器学习流程,通过实现快速、大规模的数据处理。
NumPy 是一个开源的 Python 库,对于数值计算至关重要,提供高效的数组操作。它在科学计算、数据科学和机器学习中不可或缺,提供线性代数、傅里叶变换以及与其他库集成的工具。
NumPy,全称 Numerical Python,是专注于数值计算的开源 Python 库。它是 Python 科学计算的基础包,支持数组、矩阵以及针对这些数据结构的丰富数学函数。NumPy 是许多数据科学和机器学习工作流的支柱,将 C 和 Fortran 级别的计算能力与 Python 的简洁易用相结合。该库特别受到研究人员和开发者的青睐,因为它能高效地对大型数据集进行复杂数学运算,成为需要大量数据分析与处理领域的基石。

NumPy 的核心是 ndarray(N 维数组)对象,这是一种高效存储和操作同质数据类型的数据结构。与 Python 列表不同,NumPy 数组专为处理大规模数据集而优化,因此运行速度更快、效率更高。ndarray 支持多种操作,如元素级算术、统计计算和数据重塑,并保证操作过程中的一致性能。
NumPy 擅长处理多维数组,这对于各种科学计算至关重要。这些数组可以表示向量(一维)、矩阵(二维)或张量(N 维),便于轻松进行复杂数据操作。高效处理多维数组,使 NumPy 成为机器学习和科学计算领域的首选工具,因这些领域的数据往往具有多层结构。
NumPy 的一大优势是支持向量化操作,即对整个数组而非单个元素进行操作。这种方式不仅代码更简洁,而且由于底层为 C 实现,速度更快。向量化能大幅减少 Python 循环的开销,提升代码性能。广播进一步扩展了该能力,使不同形状的数组间能高效对齐并进行运算,简化了代码,减少复杂循环的需求。
NumPy 包含丰富的函数,用于执行如下运算:
NumPy 是科学 Python 生态的基石,是 Pandas、SciPy、Scikit-learn 等库的基础。这些库依赖 NumPy 的数组结构实现高效的数据操作与分析。例如,Pandas 的 DataFrame 就基于 NumPy 数组,SciPy 在 NumPy 基础上实现了更高级的数学函数,Scikit-learn 则利用其高效实现机器学习算法。
尽管 NumPy 针对 CPU 优化,但如 CuPy 及 PyTorch 等库与框架可将 NumPy 能力扩展至 GPU,借助并行计算加速机器学习与数据科学任务。这样用户无需学习全新库,即可利用 GPU 提升计算密集任务的效率。
在物理、化学和生物等领域,NumPy 是不可或缺的工具,便于模拟、数据分析与模型构建。研究人员通过 NumPy 处理大规模数据集,高效完成复杂数学运算。其与科学类库的无缝集成,使其成为构建综合计算模型的多面手。
在数据科学领域,NumPy 用于数据预处理、特征提取和模型评估。其数组操作对于处理大数据集至关重要,是机器学习工作流的基础。NumPy 的高效运算让数据科学家能够快速原型开发,并按需扩展解决方案。
NumPy 在 AI 与自动化领域扮演着重要角色,为 TensorFlow、PyTorch 等深度学习框架提供计算基础。这些框架使用 NumPy 进行张量操作和数值计算,是训练与部署 AI 模型的关键。其高效处理海量数据的能力,使其成为开发 AI 驱动解决方案的核心组件。
import numpy as np
# 创建一维数组
array_1d = np.array([1, 2, 3, 4, 5])
# 创建二维数组(矩阵)
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
# 访问元素
element = array_1d[0] # 输出 1
# 重塑数组
reshaped_array = array_2d.reshape(3, 2)
# 算术运算
result = array_1d * 2 # 输出 array([2, 4, 6, 8, 10])
# 标量在一维数组上的广播
array = np.array([1, 2, 3])
broadcasted_result = array + 5 # 输出 array([6, 7, 8])
# 不同形状数组的广播
array_a = np.array([[1], [2], [3]])
array_b = np.array([4, 5, 6])
broadcasted_sum = array_a + array_b
# 输出 array([[5, 6, 7],
# [6, 7, 8],
# [7, 8, 9]])
理解 NumPy:科学计算的关键库
NumPy 是 Python 编程语言中用于数值计算的基础库,广泛用于高效的数值运算。它提供了强大的数组对象,是实现高效科学计算的核心组件。
在 Stefan Van Der Walt、S. Chris Colbert 和 Gaël Varoquaux 的论文《The NumPy array: a structure for efficient numerical computation》中,作者阐述了 NumPy 数组如何成为 Python 数值数据表示的标准。他们讨论了矢量化计算、减少数据拷贝和降低运算次数等提升性能的技术。论文深入分析了 NumPy 数组的结构,并展示了其在高效计算中的应用。阅读更多
Claas Abert 等人在《A full-fledged micromagnetic code in less than 70 lines of NumPy》中,通过使用 NumPy 开发完整的微磁有限差分代码,展示了 NumPy 的强大。该代码借助 NumPy 数组结构高效计算交换场和去磁场,突显了其在算法开发中的实用性。阅读更多
Akash Harapanahalli、Saber Jafarpour 和 Samuel Coogan 的论文《A Toolbox for Fast Interval Arithmetic in numpy with an Application to Formal Verification of Neural Network Controlled Systems》,介绍了基于 NumPy 的区间分析工具箱。该工具箱利用 NumPy 高效地在其框架内计算自然包含函数,助力神经网络控制系统的形式化验证。阅读更多
Jupyter Notebook 是一个开源的网页应用程序,使用户能够创建和分享包含实时代码、公式、可视化和叙述性文本的文档。它被广泛应用于数据科学、机器学习、教育和科研,支持 40 多种编程语言,并可无缝集成 AI 工具。...
Fastai 是一个建立在 PyTorch 之上的深度学习库,提供高级 API、迁移学习和分层架构,使神经网络开发在视觉、自然语言处理、表格数据等领域变得简单。由 Jeremy Howard 和 Rachel Thomas 开发,Fastai 是开源且由社区驱动,让最前沿的人工智能技术对所有人都可及。...
PyTorch 是由 Meta AI 开发的开源机器学习框架,以其灵活性、动态计算图、GPU 加速和无缝的 Python 集成而著称。它广泛应用于深度学习、计算机视觉、自然语言处理和科研领域。...