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

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
检索分析服务 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 的高级功能,如高级索引、条件操作、线性代数等。
```

目录
相关文章
|
2月前
|
计算机视觉 Python
PIL图像转换为Numpy数组:技术与案例详解
本文介绍了如何将PIL图像转换为Numpy数组,以便利用Numpy进行数学运算和向量化操作。首先简要介绍了PIL和Numpy的基本功能,然后详细说明了转换过程,包括导入库、打开图像文件、使用`np.array()`或`np.asarray()`函数进行转换,并通过打印数组形状验证转换结果。最后,通过裁剪、旋转和缩放等案例展示了转换后的应用,以及如何将Numpy数组转换回PIL图像。此外,还介绍了处理base64编码图像的完整流程。
60 4
|
4月前
|
Python
Numpy学习笔记(五):np.concatenate函数和np.append函数用于数组拼接
NumPy库中的`np.concatenate`和`np.append`函数,它们分别用于沿指定轴拼接多个数组以及在指定轴上追加数组元素。
133 0
Numpy学习笔记(五):np.concatenate函数和np.append函数用于数组拼接
|
4月前
|
Python
Numpy学习笔记(四):如何将数组升维、降维和去重
本文介绍了如何使用NumPy库对数组进行升维、降维和去重操作。
96 1
|
4月前
|
Python
使用 NumPy 进行数组操作的示例
使用 NumPy 进行数组操作的示例
59 2
|
4月前
|
机器学习/深度学习 并行计算 大数据
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧2
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
164 10
|
4月前
|
索引 Python
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧1
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
184 4
|
4月前
|
机器学习/深度学习 并行计算 调度
CuPy:将 NumPy 数组调度到 GPU 上运行
CuPy:将 NumPy 数组调度到 GPU 上运行
201 1
|
5月前
|
API Python
Numpy 数组的一些集合操作
Numpy 数组的一些集合操作
66 0
|
5月前
|
编译器 Linux API
基于类型化 memoryview 让 Numpy 数组和 C 数组共享内存
基于类型化 memoryview 让 Numpy 数组和 C 数组共享内存
77 0
|
5月前
|
Python
numpy | 插入不定长字符数组测试OK
本文介绍了如何在numpy中创建和操作不定长字符数组,包括插入和截断操作的测试。

相关实验场景

更多