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

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 【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 的高级功能,如高级索引、条件操作、线性代数等。
```

目录
相关文章
|
3月前
|
索引 Python
NumPy 教程 之 Numpy 数组操作 28
NumPy 提供多种数组操作功能,包括修改形状、翻转、连接和分割等。本教程重点介绍元素的添加与删除,如使用 `resize`、`append`、`insert` 和 `delete` 函数。其中 `numpy.insert` 可在指定索引前插入值,支持标量或数组插入。示例展示了不同情况下 `insert` 的使用方法,包括不指定轴时的数组扁平化插入,以及沿特定轴进行广播插入。
39 2
|
3月前
|
数据处理 索引 Python
NumPy 数组操作:和普通操作相较,到底蕴含着怎样令人费解的独特魅力?
【8月更文挑战第19天】NumPy是Python科学计算核心库,提供高效数组操作。不同于Python列表直接列举创建,NumPy用`np.array()`创建数组。两者都支持索引和切片,但NumPy性能更优。数学运算方面,NumPy支持简洁的向量化操作,如`my_array * 2`,无需循环。NumPy还简化了数组形状变换,如使用`reshape()`方法。此外,NumPy数组要求元素类型一致,提高了内存使用效率和计算速度。这些特点使NumPy在科学计算和数据分析中不可或缺。
32 0
|
1月前
|
Python
Numpy学习笔记(四):如何将数组升维、降维和去重
本文介绍了如何使用NumPy库对数组进行升维、降维和去重操作。
36 1
|
1月前
|
机器学习/深度学习 并行计算 大数据
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧2
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
73 10
|
1月前
|
Python
Numpy学习笔记(五):np.concatenate函数和np.append函数用于数组拼接
NumPy库中的`np.concatenate`和`np.append`函数,它们分别用于沿指定轴拼接多个数组以及在指定轴上追加数组元素。
29 0
Numpy学习笔记(五):np.concatenate函数和np.append函数用于数组拼接
|
1月前
|
Python
使用 NumPy 进行数组操作的示例
使用 NumPy 进行数组操作的示例
|
1月前
|
索引 Python
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧1
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
87 4
|
1月前
|
机器学习/深度学习 并行计算 调度
CuPy:将 NumPy 数组调度到 GPU 上运行
CuPy:将 NumPy 数组调度到 GPU 上运行
67 1
|
2月前
|
Python
numpy | 插入不定长字符数组测试OK
本文介绍了如何在numpy中创建和操作不定长字符数组,包括插入和截断操作的测试。
|
2月前
|
API Python
Numpy 数组的一些集合操作
Numpy 数组的一些集合操作
31 0

相关实验场景

更多