1. NumPy是什么?

简单说:Python的“数据处理加速器”,核心是 ndarray多维数组(比列表快10-100倍),专门解决“列表运算慢、多维数据难处理”的问题。

2. 怎么装?怎么导?

一行代码安装:

  1. pip install numpy

        代码里固定这么导(行业通用简写np):

  1. import numpy as np

二、5个核心

创建数组(3种最常用)

不用记太多,这3个够你应对80%需求:

  1. import numpy as np
  2. # 1. 从列表转数组(最常用)
  3. arr1 = np.array([1,2,3,4]) # 1维
  4. arr2 = np.array([[1,2],[3,4]]) # 2维(行×列)
  5. print("2维数组:\n", arr2) # 输出 [[1 2],[3 4]]
  6. # 2. 全0数组(初始化用)
  7. zeros = np.zeros((2,3)) # 2行3列全0
  8. print("\n全0数组:\n", zeros)
  9. # 3. 连续数字数组(替代range)
  10. arange_arr = np.arange(0, 10, 2) # 0到10,步长2
  11. print("\n连续数组:", arange_arr) # 输出 [0 2 4 6 8]

数组基本属性

  1. arr = np.array([[1,2,3],[4,5,6]]) # 2行3列
  2. print("形状(行×列):", arr.shape) # 输出 (2,3)
  3. print("维度(几维):", arr.ndim) # 输出 2(二维)
  4. print("总元素数:", arr.size) # 输出 6(2×3)

数组运算

这是NumPy的核心优势——直接算,不写for循环:

  1. a = np.array([1,2,3])
  2. b = np.array([4,5,6])
  3. # 1. 对应元素运算(加/减/乘/平方)
  4. print("a+b:", a + b) # 输出 [5 7 9]
  5. print("a*b:", a * b) # 输出 [4 10 18]
  6. print("a平方:", a**2) # 输出 [1 4 9]
  7. # 2. 数组×标量(所有元素都乘)
  8. print("a×2:", a * 2) # 输出 [2 4 6]

统计分析

算总和、均值、最高分,用axis控制“按行/按列”:

  • axis=1:按行算(比如每个学生的总分)
  • axis=0:按列算(比如每门课的平均分)
  1. # 5个学生,3门课成绩(行=学生,列=科目)
  2. scores = np.array([[80,90,85],[75,88,92],[95,70,80],[88,92,78],[90,85,82]])
  3. # 1. 按行算:每个学生的总分
  4. student_total = scores.sum(axis=1)
  5. print("每个学生总分:", student_total) # 输出 [255 255 245 258 257]
  6. # 2. 按列算:每门课的平均分
  7. subject_avg = scores.mean(axis=0)
  8. print("每门课平均分:", subject_avg) # 输出 [85.6 85. 83.4]
  9. # 3. 找最高分
  10. max_score = scores.max()
  11. print("全班最高分:", max_score) # 输出 95

切片(提取数据)

按“行切片, 列切片”提取数据,规则:左闭右开(比如0:2取第0、1行):

  1. scores = np.array([[80,90,85],[75,88,92],[95,70,80],[88,92,78],[90,85,82]])
  2. # 1. 提取第2-3个学生(索引1、2)
  3. print("第2-3个学生:\n", scores[1:3]) # 行切片1:3
  4. # 2. 提取所有学生的第1门课(索引0)
  5. print("所有学生第1门课:", scores[:, 0]) # 列切片0
  6. # 3. 提取第1-2个学生的第2-3门课
  7. print("子数据:\n", scores[0:2, 1:3]) # 行0:2,列1:3

更多推荐