Python 科学计算核心库 NumPy 详解
为什么 NumPy 是 Python 科学计算的核心?
如果你正在进行数据科学或机器学习项目,那么你一定会接触到 Python,而如果你在 Python 中进行科学计算,NumPy 就是你必不可少的工具。它被誉为 Python 数值计算的'发动机',是整个数据分析和科学计算生态系统的基石。NumPy 凭借其高效的 ndarray 数组对象,让你能在 Python 中处理大规模数据时,拥有接近 C 语言的运算速度。
为什么 NumPy 如此重要?
在传统的 Python 列表操作中,数据存取的速度相对较慢,尤其是在需要进行大量数值计算时。NumPy 通过其多维数组(ndarray)结构,将这些计算的效率提升了一个数量级,同时极大地优化了内存使用。你将能够轻松实现高效的矩阵运算、线性代数、统计运算等,甚至无需手动编写复杂的循环代码。
举个简单的例子,假设你有一个包含成千上万的数据点的二维矩阵,使用 Python 自带的列表来存储和操作这些数据,不仅处理速度慢,而且内存占用也高。使用 NumPy 后,你可以轻松创建一个高效的 ndarray 数组,并进行一系列优化计算。
Numpy 数组的核心特性
多维性
# 零维向量 arr = np.array(5) print(arr) print('arr 的维度', arr.ndim) # 数组的维度 << 5 arr 的维度 0 # 一维向量 arr = np.array([1, 2, 3]) print(arr) print('arr 的维度', arr.ndim) # 数组的维度 << [1 2 3] arr 的维度 1 # 二维矩阵 arr = np.array([[1, 2, 3], [4, 5, 6]]) print(arr) print('arr 的维度', arr.ndim) # 数组的维度 << [[1 2 3] [4 5 6]] arr 的维度 2
同质性
- 数组里面必须要一样,如果有字符串和数字,会将数字转换为字符串
- 数组里面如果有不同精度的数据,都会转换为高精度
arr = np.array([1, 2, 'hello']) # 强制转换为同一类型 print(arr) << ['1' '2' 'hello'] arr = np.array([1, 2.5]) # 转换升维 print(arr) << [1. 2.5] # 这里显示 1.后面的小数位 0 省略
Numpy 数组的属性
| 属性名称 | 解释 | 使用示例 |
|---|---|---|
| shape | 数组的形状:行数和列数(或更高维度的尺寸) | arr.shape |
| ndim | 维度数量:数组是维度(1 维,2 维,3 维) | arr.ndim |
| size | 总元素个数:数组中所有元素的总数 | arr.size |
| dtype | 元素类型:数组中元素的类型 | arr.dtype |
| T | 转置:和高数中概念一样 | arr.T |
arr = np.array([[1, , ], [, , ]]) (arr) (, arr.shape)


