- NumPy 教程
- NumPy - 首页
- NumPy 简介
- NumPy - 环境配置
- NumPy 数组
- NumPy - Ndarray 对象
- NumPy - 数据类型
- NumPy 数组的创建和操作
- NumPy - 数组创建函数
- NumPy - 数组操作
- NumPy - 从现有数据创建数组
- NumPy - 从数值范围创建数组
- NumPy - 数组迭代
- NumPy - 数组重塑
- NumPy - 数组连接
- NumPy - 数组堆叠
- NumPy - 数组分割
- NumPy - 数组扁平化
- NumPy - 数组转置
- NumPy 索引和切片
- NumPy - 索引和切片
- NumPy - 高级索引
- NumPy 数组属性和运算
- NumPy - 数组属性
- NumPy - 数组形状
- NumPy - 数组大小
- NumPy - 数组步长
- NumPy - 数组元素大小
- NumPy - 广播
- NumPy - 算术运算
- NumPy - 数组加法
- NumPy - 数组减法
- NumPy - 数组乘法
- NumPy - 数组除法
- NumPy 高级数组运算
- NumPy - 交换数组轴
- NumPy - 字节交换
- NumPy - 副本和视图
- NumPy - 元素级数组比较
- NumPy - 数组过滤
- NumPy - 数组拼接
- NumPy - 排序、搜索和计数函数
- NumPy - 数组搜索
- NumPy - 数组并集
- NumPy - 查找唯一行
- NumPy - 创建日期时间数组
- NumPy - 二元运算符
- NumPy - 字符串函数
- NumPy - 数学函数
- NumPy - 统计函数
- NumPy - 矩阵库
- NumPy - 线性代数
- NumPy - Matplotlib
- NumPy - 使用 Matplotlib 绘制直方图
- NumPy - NumPy 的 I/O 操作
- NumPy 排序和高级操作
- NumPy - 数组排序
- NumPy - 沿轴排序
- NumPy - 使用花式索引排序
- NumPy - 结构化数组
- NumPy - 创建结构化数组
- NumPy - 操作结构化数组
- NumPy - 字段访问
- NumPy - 记录数组
- Numpy - 加载数组
- Numpy - 保存数组
- NumPy - 向数组追加值
- NumPy - 交换数组列
- NumPy - 向数组插入轴
- NumPy 处理缺失数据
- NumPy - 处理缺失数据
- NumPy - 识别缺失值
- NumPy - 删除缺失数据
- NumPy - 填充缺失数据
- NumPy 性能优化
- NumPy - 使用数组进行性能优化
- NumPy - 使用数组进行向量化
- NumPy - 数组的内存布局
- Numpy 线性代数
- NumPy - 线性代数
- NumPy - 矩阵库
- NumPy - 矩阵加法
- NumPy - 矩阵减法
- NumPy - 矩阵乘法
- NumPy - 元素级矩阵运算
- NumPy - 点积
- NumPy - 矩阵求逆
- NumPy - 行列式计算
- NumPy - 特征值
- NumPy - 特征向量
- NumPy - 奇异值分解
- NumPy - 求解线性方程组
- NumPy - 矩阵范数
- NumPy 元素级矩阵运算
- NumPy - 求和
- NumPy - 求平均值
- NumPy - 求中位数
- NumPy - 求最小值
- NumPy - 求最大值
- NumPy 集合运算
- NumPy - 唯一元素
- NumPy - 交集
- NumPy - 并集
- NumPy - 差集
- NumPy 有用资源
- NumPy 编译器
- NumPy - 快速指南
- NumPy - 有用资源
- NumPy - 讨论
NumPy 简介
NumPy 简介
NumPy 是一个 Python 包。它代表“Numerical Python”。它是一个包含多维数组对象和用于数组处理的例程集合的库。
Numeric,NumPy 的祖先,由 Jim Hugunin 开发。另一个包 Numarray 也得到了开发,它具有一些额外的功能。2005 年,Travis Oliphant 通过将 Numarray 的特性整合到 Numeric 包中创建了 NumPy 包。许多人参与了这个开源项目。
使用 NumPy 进行的操作
使用 NumPy,开发人员可以执行以下操作:
数组上的数学和逻辑运算。
傅里叶变换和用于形状操作的例程。
与线性代数相关的运算。NumPy 内置了线性代数和随机数生成函数。
NumPy – MATLAB 的替代品
NumPy 通常与 SciPy(科学 Python)和 Matplotlib(绘图库)等包结合使用。这种组合被广泛用作 MATLAB 的替代品,MATLAB 是一个流行的技术计算平台。然而,Python 的 MATLAB 替代方案现在被视为一种更现代、更完整的编程语言。
NumPy 的一个重要优势在于它是开源的,任何人都可以免费使用它。
为什么 NumPy 比列表更快?
NumPy 数组比 Python 列表快得多,原因如下:
方面 | NumPy | 列表 |
---|---|---|
内存存储 | NumPy 使用连续的内存块,这提高了缓存效率和访问速度。 | Python 列表包含指向对象的指针,导致更多的内存碎片和更慢的访问速度。 |
数据类型 | NumPy 支持同类数据类型(所有元素都是相同类型),从而提高了内存使用效率。 | Python 列表可以包含异类数据类型(元素可以是不同类型),导致更高的内存开销。 |
运算 | NumPy 使用向量运算,利用 SIMD(单指令多数据)进行并行处理。 | Python 列表依赖于基于循环的运算,由于 Python 解释性质的开销,这些运算速度较慢。 |
效率 | NumPy是用C语言编写的,并且针对性能进行了优化,减少了数值运算的执行时间。 | Python 列表作为 Python 字节码执行,通常比编译后的 C 代码慢。 |
内存使用 | 由于固定数据类型和连续存储,NumPy 需要更少的内存。 | Python 列表使用更多的内存,因为每个元素都是一个单独的 Python 对象,并有额外的开销。 |
广播 | NumPy 支持广播,允许对不同形状的数组进行运算,而无需创建额外的副本。 | Python 列表不支持广播,使得逐元素运算效率较低。 |
性能 | 由于连续内存存储,更好的缓存利用率,从而导致更快的访问和处理速度。 | 由于内存分配分散,缓存利用率差,导致访问速度变慢。 |
功能 | NumPy 提供了一套丰富的数学函数和工具,这些函数和工具针对数组运算进行了优化。 | Python 列表仅限于基本操作,缺乏高级数学功能。 |
NumPy是用什么语言编写的?
NumPy 主要用以下语言编写:
C:NumPy 的核心功能,包括数组对象和基本运算的实现,是用 C 语言编写的。这提供了 NumPy 闻名的卓越性能和效率。
Python:NumPy 的用户界面和高级功能是用 Python 编写的。这使得它易于使用并与其他 Python 库集成。
Fortran:NumPy 中的一些数值例程,特别是与线性代数相关的例程(如 LAPACK 和 BLAS),是用 Fortran 编写的。Fortran 以其在数值计算方面的效率而闻名,这增强了 NumPy 在特定类型操作中的性能。
广告