Python NumPy
·
1. NumPy是什么?
简单说:Python的“数据处理加速器”,核心是 ndarray多维数组(比列表快10-100倍),专门解决“列表运算慢、多维数据难处理”的问题。
2. 怎么装?怎么导?
一行代码安装:
pip install numpy
代码里固定这么导(行业通用简写np):
import numpy as np
二、5个核心
创建数组(3种最常用)
不用记太多,这3个够你应对80%需求:
import numpy as np# 1. 从列表转数组(最常用)arr1 = np.array([1,2,3,4]) # 1维arr2 = np.array([[1,2],[3,4]]) # 2维(行×列)print("2维数组:\n", arr2) # 输出 [[1 2],[3 4]]# 2. 全0数组(初始化用)zeros = np.zeros((2,3)) # 2行3列全0print("\n全0数组:\n", zeros)# 3. 连续数字数组(替代range)arange_arr = np.arange(0, 10, 2) # 0到10,步长2print("\n连续数组:", arange_arr) # 输出 [0 2 4 6 8]
数组基本属性
arr = np.array([[1,2,3],[4,5,6]]) # 2行3列print("形状(行×列):", arr.shape) # 输出 (2,3)print("维度(几维):", arr.ndim) # 输出 2(二维)print("总元素数:", arr.size) # 输出 6(2×3)
数组运算
这是NumPy的核心优势——直接算,不写for循环:
a = np.array([1,2,3])b = np.array([4,5,6])# 1. 对应元素运算(加/减/乘/平方)print("a+b:", a + b) # 输出 [5 7 9]print("a*b:", a * b) # 输出 [4 10 18]print("a平方:", a**2) # 输出 [1 4 9]# 2. 数组×标量(所有元素都乘)print("a×2:", a * 2) # 输出 [2 4 6]
统计分析
算总和、均值、最高分,用axis控制“按行/按列”:
axis=1:按行算(比如每个学生的总分)axis=0:按列算(比如每门课的平均分)
# 5个学生,3门课成绩(行=学生,列=科目)scores = np.array([[80,90,85],[75,88,92],[95,70,80],[88,92,78],[90,85,82]])# 1. 按行算:每个学生的总分student_total = scores.sum(axis=1)print("每个学生总分:", student_total) # 输出 [255 255 245 258 257]# 2. 按列算:每门课的平均分subject_avg = scores.mean(axis=0)print("每门课平均分:", subject_avg) # 输出 [85.6 85. 83.4]# 3. 找最高分max_score = scores.max()print("全班最高分:", max_score) # 输出 95
切片(提取数据)
按“行切片, 列切片”提取数据,规则:左闭右开(比如0:2取第0、1行):
scores = np.array([[80,90,85],[75,88,92],[95,70,80],[88,92,78],[90,85,82]])# 1. 提取第2-3个学生(索引1、2)print("第2-3个学生:\n", scores[1:3]) # 行切片1:3# 2. 提取所有学生的第1门课(索引0)print("所有学生第1门课:", scores[:, 0]) # 列切片0# 3. 提取第1-2个学生的第2-3门课print("子数据:\n", scores[0:2, 1:3]) # 行0:2,列1:3
更多推荐

所有评论(0)