[Python 教程] NumPy 数组操作详解
NumPy 数组操作详解
NumPy 是 Python 科学计算的基础库,提供高性能的多维数组对象。本文详细介绍 NumPy 数组的核心操作。
一、创建数组
import numpy as np
# 从列表创建
arr = np.array([1, 2, 3, 4, 5])
# 创建二维数组
arr2d = np.array([[1, 2], [3, 4]])
# 创建全 0 数组
zeros = np.zeros((3, 4))
# 创建全 1 数组
ones = np.ones((2, 3))
# 创建等差数列
range_arr = np.arange(0, 10, 2) # [0, 2, 4, 6, 8]
# 创建均匀分布
linspace = np.linspace(0, 1, 5) # [0, 0.25, 0.5, 0.75, 1]
二、数组属性
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 - 数据类型
三、数组索引与切片
arr = np.array([1, 2, 3, 4, 5])
# 基本索引
print(arr[0]) # 1
print(arr[-1]) # 5
# 切片
print(arr[1:4]) # [2, 3, 4]
print(arr[::2]) # [1, 3, 5]
# 二维数组索引
arr2d = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2d[0, 1]) # 2
print(arr2d[:, 1]) # [2, 5] - 第二列
四、数组运算
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# 加法
print(arr1 + arr2) # [5, 7, 9]
# 乘法
print(arr1 * arr2) # [4, 10, 18]
# 点积
print(np.dot(arr1, arr2)) # 32
# 广播
print(arr1 + 10) # [11, 12, 13]
五、常用函数
arr = np.array([1, 2, 3, 4, 5])
print(np.sum(arr)) # 15 - 求和
print(np.mean(arr)) # 3.0 - 平均值
print(np.std(arr)) # 标准差
print(np.max(arr)) # 5 - 最大值
print(np.min(arr)) # 1 - 最小值
print(np.argmax(arr)) # 4 - 最大值索引
print(np.sort(arr)) # 排序
六、数组变形
arr = np.arange(12)
# 重塑
reshaped = arr.reshape(3, 4)
# 展平
flattened = reshaped.flatten()
# 转置
transposed = reshaped.T
# 合并
arr1 = np.array([1, 2])
arr2 = np.array([3, 4])
concatenated = np.concatenate([arr1, arr2])
