NumPy 快速入门:数组操作基础

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 【8月更文第30天】NumPy 是 Python 中一个非常重要的科学计算库,它提供了高性能的多维数组对象以及用于操作这些数组的工具。NumPy 数组(也称为 `ndarray`)是 NumPy 库的核心,它比 Python 内置的列表类型更高效,特别是在处理大型数据集时。本文将介绍 NumPy 数组的基本概念、创建方法以及一些常用的数组操作。

引言

NumPy 是 Python 中一个非常重要的科学计算库,它提供了高性能的多维数组对象以及用于操作这些数组的工具。NumPy 数组(也称为 ndarray)是 NumPy 库的核心,它比 Python 内置的列表类型更高效,特别是在处理大型数据集时。本文将介绍 NumPy 数组的基本概念、创建方法以及一些常用的数组操作。

安装 NumPy

在开始之前,确保你的环境中已经安装了 NumPy。如果没有安装,可以通过 pip 进行安装:

pip install numpy

NumPy 数组的基础概念

  • 数组对象 (ndarray):NumPy 的核心数据结构,是一个 N 维数组。
  • 维度 (axes):数组的维度数,即数组的秩。
  • 形状 (shape):一个整数元组,表示每个维度上的元素数量。
  • 数据类型 (dtype):数组中元素的数据类型。
  • 步幅 (strides):每个维度上遍历一个元素所需的字节数。

创建 NumPy 数组

NumPy 提供了多种创建数组的方法:

  1. 使用现有数据:

    import numpy as np
    
    # 从列表创建数组
    arr_from_list = np.array([1, 2, 3])
    print(arr_from_list)
    
    # 多维数组
    multi_arr = np.array([[1, 2, 3], [4, 5, 6]])
    print(multi_arr)
    
  2. 使用内置函数:

    # 创建全零数组
    zeros_array = np.zeros((2, 3))
    print(zeros_array)
    
    # 创建全一数组
    ones_array = np.ones((2, 3), dtype=int)
    print(ones_array)
    
    # 创建常数值数组
    constant_array = np.full((2, 3), 7)
    print(constant_array)
    
    # 创建等差数列
    arange_array = np.arange(1, 10, 2)
    print(arange_array)
    
    # 创建等比数列
    linspace_array = np.linspace(0, 1, 5)
    print(linspace_array)
    
    # 创建单位矩阵
    identity_matrix = np.eye(3)
    print(identity_matrix)
    

常用数组操作

NumPy 提供了大量的函数来进行数组操作,包括但不限于切片、索引、算术运算、统计函数等。

  1. 索引与切片:

    a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
    
    # 选取第一行
    print(a[0])
    
    # 选取第二列
    print(a[:, 1])
    
    # 切片选取
    print(a[1:3, :2])
    
  2. 算术运算:

    b = np.array([[1, 2], [3, 4]])
    c = np.array([[5, 6], [7, 8]])
    
    # 加法
    print(b + c)
    
    # 减法
    print(b - c)
    
    # 乘法 (逐元素相乘)
    print(b * c)
    
    # 矩阵乘法
    print(np.dot(b, c))
    
  3. 统计函数:

    d = np.array([1, 2, 3, 4, 5])
    
    # 求和
    print(np.sum(d))
    
    # 最大值
    print(np.max(d))
    
    # 最小值
    print(np.min(d))
    
    # 平均值
    print(np.mean(d))
    
    # 方差
    print(np.var(d))
    
    # 标准差
    print(np.std(d))
    
  4. 转置和重塑:

    e = np.array([[1, 2], [3, 4]])
    
    # 转置
    print(e.T)
    
    # 重塑
    f = np.arange(8).reshape(2, 4)
    print(f)
    
  5. 广播机制:

    g = np.array([1, 2, 3])
    h = 2
    
    # 广播相加
    print(g + h)
    

示例:计算平均温度

假设我们有一个包含每天温度的 NumPy 数组,我们将计算这一周的平均温度。

# 创建一个一周温度的数组
temperatures = np.array([22, 24, 21, 23, 20, 25, 26])

# 计算平均温度
average_temperature = np.mean(temperatures)

print("Average temperature for the week:", average_temperature)

结论

通过本文,你应该对 NumPy 数组有了基本的认识,并掌握了如何创建数组以及执行一些常见的数组操作。NumPy 是 Python 数据科学的重要组成部分,熟练掌握 NumPy 的使用对于进行高效的科学计算至关重要。在未来的学习过程中,你可以进一步探索 NumPy 的高级功能,如高级索引、条件操作、线性代数等。
```

目录
相关文章
|
1月前
|
索引 Python
NumPy 教程 之 Numpy 数组操作 28
NumPy 提供多种数组操作功能,包括修改形状、翻转、连接和分割等。本教程重点介绍元素的添加与删除,如使用 `resize`、`append`、`insert` 和 `delete` 函数。其中 `numpy.insert` 可在指定索引前插入值,支持标量或数组插入。示例展示了不同情况下 `insert` 的使用方法,包括不指定轴时的数组扁平化插入,以及沿特定轴进行广播插入。
29 2
|
28天前
|
数据处理 索引 Python
NumPy 数组操作:和普通操作相较,到底蕴含着怎样令人费解的独特魅力?
【8月更文挑战第19天】NumPy是Python科学计算核心库,提供高效数组操作。不同于Python列表直接列举创建,NumPy用`np.array()`创建数组。两者都支持索引和切片,但NumPy性能更优。数学运算方面,NumPy支持简洁的向量化操作,如`my_array * 2`,无需循环。NumPy还简化了数组形状变换,如使用`reshape()`方法。此外,NumPy数组要求元素类型一致,提高了内存使用效率和计算速度。这些特点使NumPy在科学计算和数据分析中不可或缺。
26 0
|
17天前
|
存储 缓存 C语言
|
30天前
|
Python
NumPy 教程 之 Numpy 数组操作 29
NumPy 提供多种数组操作函数,如修改形状、翻转和连接等。本教程重点介绍元素的添加与删除,包括 `resize`、`append`、`insert` 和 `delete` 函数。`numpy.delete` 用于从数组中删除指定元素,参数包括 `arr`(输入数组)、`obj`(待删元素)和 `axis`(删除轴)。示例展示了如何使用 `numpy.delete` 删除一维和二维数组中的元素。
32 4
|
30天前
|
数据挖掘 索引 Python
NumPy 教程 之 Numpy 数组操作 30
展示了如何使用`numpy.unique`去除数组中的重复值,并获取额外信息如索引和计数。示例中,数组`a`的重复值被去除,打印出唯一值及其在原数组中的首次出现索引、对应原值的索引以及各唯一元素的出现次数。这有助于数据分析时简化数据集。
27 2
|
1月前
|
Python
NumPy 教程 之 Numpy 数组操作 24
本教程介绍Numpy中分割数组的方法,特别是`vsplit`函数,它能将数组沿垂直轴分为多个子数组。示例代码展示了如何使用`vsplit`将一个4x4的数组分为两个2x4的子数组,适用于需要按行分割数据的场景。
12 1
|
1月前
|
Python
NumPy 教程 之 Numpy 数组操作 22
本教程介绍NumPy中分割数组的方法。`numpy.split`可沿指定轴将数组分为子数组,参数包括待分割数组、切分数或位置及轴向。示例展示了如何使用`numpy.split`和`numpy.hsplit`沿不同轴向分割一个4x4数组。`numpy.split`在默认轴0方向分割,而通过设定`axis=1`实现水平分割;`numpy.hsplit`则专门用于水平分割。
27 2
|
1月前
|
Python
NumPy 教程 之 Numpy 数组操作 19
本教程介绍Numpy数组操作,涵盖数组形状修改、翻转、维度调整、连接与分割以及元素增删等关键技能。重点讲解`numpy.vstack`函数,该函数可将多个数组沿垂直方向堆叠。示例展示了如何使用`vstack`将两个2D数组堆叠成一个更大的数组,适用于数据整合场景。
25 2
|
1月前
|
Python
NumPy 教程 之 Numpy 数组操作 13
本教程介绍 NumPy 中的数组操作,覆盖了修改数组形状、翻转、连接与分割等技巧。重点讲解了如何使用 `numpy.expand_dims` 函数在指定位置新增轴以扩展数组维度,通过示例展示了 `expand_dims` 的用法及其对数组形状的影响。
27 4
|
1月前
|
Python
NumPy 教程 之 Numpy 数组操作 16
本教程介绍Numpy中的数组操作,涵盖修改形状、翻转、维度调整、连接与分割及元素增删等技巧。重点讲解了数组连接方法,包括`concatenate`函数的应用,该函数可在指定轴上合并多个数组。示例展示了如何沿不同轴连接两个二维数组,实现垂直与水平扩展,为高效数组操作提供了实用指南。
25 2