Python 科学计算 NumPy
学习NumPy数组的创建和基本操作 · 难度:高级 · +15XP
Python 科学计算 NumPy
NumPy(Numerical Python)是 Python 科学计算的核心库,提供了高性能的多维数组对象 ndarray 以及丰富的数学运算函数。NumPy 底层使用 C 语言实现,运算速度远快于原生 Python 列表,是数据科学、机器学习和科学计算的基础。
NumPy 的安装与导入
# 安装 NumPy
# pip install numpy
import numpy as np # 标准别名
创建数组
import numpy as np
# 从列表创建数组
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1) # [1 2 3 4 5]
# 创建特殊数组
zeros = np.zeros((3, 4)) # 全零数组 (3行4列)
ones = np.ones((2, 3)) # 全一数组
eye = np.eye(3) # 单位矩阵 (3x3)
arange = np.arange(0, 10, 2) # [0 2 4 6 8]
linspace = np.linspace(0, 1, 5) # [0. 0.25 0.5 0.75 1.]
random_arr = np.random.rand(3, 3) # 随机数组
数组属性
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape) # (2, 3) - 形状
print(arr.ndim) # 2 - 维度数
print(arr.size) # 6 - 元素总数
print(arr.dtype) # int64 - 数据类型
print(arr.itemsize) # 8 - 每个元素的字节数
数组运算
import numpy as np
a = np.array([1, 2, 3, 4])
b = np.array([5, 6, 7, 8])
# 逐元素运算 (向量化运算)
print(a + b) # [ 6 8 10 12]
print(a * b) # [ 5 12 21 32]
print(a ** 2) # [ 1 4 9 16]
print(np.sqrt(a)) # [1. 1.414 1.732 2.]
# 广播机制
matrix = np.array([[1, 2, 3], [4, 5, 6]])
print(matrix + 10) # 每个元素加10
print(matrix * 2) # 每个元素乘2
数组索引与切片
import numpy as np
arr = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
print(arr[0, 1]) # 2 (第0行第1列)
print(arr[:, 1]) # [2 6 10] (所有行的第1列)
print(arr[1:, :2]) # [[5 6] [9 10]]
# 布尔索引
print(arr[arr > 5]) # [6 7 8 9 10 11 12]
常用函数速查表
| 函数 | 说明 |
|---|---|
| np.sum(arr) | 计算总和 |
| np.mean(arr) | 计算平均值 |
| np.median(arr) | 计算中位数 |
| np.std(arr) | 计算标准差 |
| np.min(arr) / np.max(arr) | 最小值 / 最大值 |
| np.dot(a, b) | 矩阵乘法 |
| np.reshape(arr, shape) | 改变数组形状 |
| np.concatenate([a, b]) | 拼接数组 |