文章目录

Python 常用库:NumPy 数组基本操作

发布于 2026-04-17 12:13:10 · 浏览 16 次 · 评论 0 条

Python 常用库:NumPy 数组基本操作

NumPy(Numerical Python)是 Python 科学计算的基础库,它提供了高性能的多维数组对象以及相关工具。掌握 NumPy 数组的基本操作是进行数据分析和机器学习的前提。


一、环境准备

在使用 NumPy 之前,需要先安装并导入该库。

  1. 打开终端或命令行工具。
  2. 输入安装命令并执行:
pip install numpy
  1. 启动 Python 交互式环境或编辑器(如 Jupyter Notebook、PyCharm)。
  2. 导入 NumPy 库,通常约定俗成使用 np 作为别名:
import numpy as np

二、创建数组

NumPy 的核心对象是 ndarray(N-dimensional array,即 n 维数组)。创建数组最常用的方法是使用 np.array() 函数将 Python 列表转换为数组。

  1. 创建一维数组:
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)
  1. 创建二维数组(矩阵):
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2)
  1. 使用特定函数初始化数组:

    • 生成全为 0 的数组:
      zeros_arr = np.zeros((2, 3)) # 创建 2 行 3 列的全 0 矩阵
    • 生成全为 1 的数组:
      ones_arr = np.ones((3, 3)) # 创建 3 行 3 列的全 1 矩阵
    • 生成指定范围的数组(类似 Python 的 range):
      range_arr = np.arange(0, 10, 2) # 从 0 到 9,步长为 2
    • 生成等间距的线性数组:
      linspace_arr = np.linspace(0, 10, 5) # 在 0 到 10 之间生成 5 个等间距数字

三、查看数组属性

了解数组的基本形状和数据类型对于后续操作至关重要。

  1. 查看数组的维度(即秩):
print(arr2.ndim)
  1. 查看数组的形状(即各维度的大小):
print(arr2.shape)
# 输出 (2, 3),表示 2 行 3 列
  1. 查看数组中元素的总个数:
print(arr2.size)
# 输出 6
  1. 查看数组中元素的数据类型:
print(arr2.dtype)
# 输出 int32 或 int64,取决于系统

四、数组索引与切片

NumPy 数组的切片方式与 Python 列表类似,但功能更强大,尤其是在多维数组上。

  1. 访问一维数组中的元素:
print(arr1[0])  # 获取第一个元素
print(arr1[1:4]) # 获取索引 1 到 3 的元素(不包含索引 4)
  1. 访问二维数组中的元素:

    • 格式arr[行索引, 列索引]
    • 获取某一行:
      print(arr2[0, :]) # 获取第一行所有元素
    • 获取某一列:
      print(arr2[:, 1]) # 获取第二列所有元素
    • 获取单个元素:
      print(arr2[1, 2]) # 获取第二行第三列的元素(值为 6)
  2. 使用布尔索引(根据条件筛选数据):

# 筛选出 arr1 中大于 2 的元素
print(arr1[arr1 > 2])
# 输出 [3 4 5]

五、数组形状操作

处理数据时,经常需要改变数组的维度或进行转置。

  1. 重塑数组形状(不改变数据总量,只改变排列方式):
arr = np.arange(6)
# 将一维数组重塑为 2 行 3 列的二维数组
arr_reshaped = arr.reshape(2, 3)
print(arr_reshaped)
  1. 展平数组(将多维数组变为一维数组):
print(arr_reshaped.flatten())
  1. 转置数组(行变列,列变行):
print(arr_reshaped.T)

六、数组运算

NumPy 支持向量化运算,即直接对数组进行算术运算,而无需编写循环代码,这大大提高了计算效率。

  1. 执行数组与标量的算术运算:
arr = np.array([1, 2, 3])
print(arr + 10) # 每个元素加 10
print(arr * 2)  # 每个元素乘 2
  1. 执行数组间的算术运算(要求形状相同):
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b) # 对应元素相加
print(a * b) # 对应元素相乘(非矩阵乘法)
  1. 计算统计指标:

    • 计算平均值:
      print(np.mean(arr))
    • 计算总和:
      print(np.sum(arr))
    • 计算最大值和最小值:
      print(np.max(arr))
      print(np.min(arr))

    对于二维数组,可以使用 axis 参数指定计算方向。例如,axis=0 表示按列计算,axis=1 表示按行计算。

函数 描述 axis=0 (列) axis=1 (行)
np.sum 求和 每一列的总和 每一行的总和
np.mean 求平均值 每一列的平均值 每一行的平均值

以下代码展示了如何在二维数组中按行求和:

matrix = np.array([[1, 2], [3, 4]])
# 沿着 axis=1(行)求和
row_sum = np.sum(matrix, axis=1)
print(row_sum) # 输出 [3 7]

七、矩阵乘法

在数据处理中,区分元素乘法和矩阵乘法非常重要。使用 @ 运算符或 np.dot() 函数可以进行线性代数中的矩阵乘法。

  1. 准备两个形状兼容的矩阵:
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
  1. 执行矩阵乘法:
# 方法一:使用 @ 运算符
result1 = A @ B

# 方法二:使用 np.dot 函数
result2 = np.dot(A, B)

print(result1)

评论 (0)

暂无评论,快来抢沙发吧!

扫一扫,手机查看

扫描上方二维码,在手机上查看本文