当前位置: 首页 > news >正文

Numpy科学计算与数据分析:Numpy数组索引与切片入门

学习目标

本课程将深入探讨Numpy数组的索引和切片操作,帮助学员掌握如何高效地访问和修改数组中的元素。通过本课程的学习,学员将能够灵活运用Numpy的索引和切片功能,为数据处理和分析打下坚实的基础。

相关知识点

  • Numpy数组的索引与切片

学习内容

1 Numpy数组的索引与切片

1.1 基本索引

Numpy数组的基本索引与Python列表的索引方式非常相似,但Numpy提供了更多灵活的索引方式。基本索引允许使用指定数组的索引来访问单个元素或子数组。

1.1.1 一维数组的基本索引

对于一维数组,可以通过指定索引来访问单个元素。索引从0开始,负数索引表示从数组末尾开始计数。

import numpy as np# 创建一个一维数组
arr = np.array([1, 2, 3, 4, 5])# 访问第一个元素
print(arr[0])  # 输出: 1# 访问最后一个元素
print(arr[-1])  # 输出: 5
1.1.2 多维数组的基本索引

对于多维数组,可以通过指定多个索引来访问特定的元素。每个维度的索引用逗号分隔。

import numpy as np
# 创建一个二维数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 访问第一行第二列的元素
print(arr[0, 1])  # 输出: 2# 访问最后一行最后一列的元素
print(arr[-1, -1])  # 输出: 9

1.2 高级索引

Numpy的高级索引允许通过数组或列表来索引数组,从而实现更复杂的访问模式。高级索引返回的是数组的副本,而不是视图。

1.2.1 使用整数数组进行索引

现在可以使用一个整数数组来索引另一个数组,从而获取多个元素。

import numpy as np
# 创建一个一维数组
arr = np.array([10, 20, 30, 40, 50])# 使用整数数组进行索引
indices = np.array([0, 2, 4])
print(arr[indices])  # 输出: [10 30 50]
1.2.2 使用布尔数组进行索引

还可以使用布尔数组来索引数组,布尔数组中的True表示要选择的元素。

import numpy as np
# 创建一个一维数组
arr = np.array([10, 20, 30, 40, 50])# 创建一个布尔数组
mask = np.array([True, False, True, False, True])# 使用布尔数组进行索引
print(arr[mask])  # 输出: [10 30 50]

1.3 切片操作

Numpy数组的切片操作允许人们访问数组的一部分,而不仅仅是单个元素。切片操作返回的是数组的视图,而不是副本。

1.3.1 一维数组的切片

对于一维数组,可以使用切片语法来访问数组的一部分。

import numpy as np
# 创建一个一维数组
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])# 获取前5个元素
print(arr[:5])  # 输出: [1 2 3 4 5]# 获取第3个到第7个元素
print(arr[2:7])  # 输出: [3 4 5 6 7]# 获取每隔2个元素
print(arr[::2])  # 输出: [1 3 5 7 9]
1.3.2 多维数组的切片

对于多维数组,可以使用多个切片来访问特定的子数组。

import numpy as np
# 创建一个二维数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 获取第一行的所有元素
print(arr[0, :])  # 输出: [1 2 3]# 获取所有行的第二列元素
print(arr[:, 1])  # 输出: [2 5 8]# 获取前两行的前两列元素
print(arr[:2, :2])  # 输出: [[1 2]#        [4 5]]
1.4 综合练习

为了巩固所学知识,现在来完成一个综合练习。假设有一个二维数组,现在需要完成以下任务:

  1. 获取第一行的所有元素。
  2. 获取所有行的第二列元素。
  3. 获取前两行的前两列元素。
  4. 使用布尔数组选择所有大于5的元素。
# 创建一个二维数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 1. 获取第一行的所有元素
first_row = arr[0, :]
print("第一行的所有元素:", first_row)  # 输出: [1 2 3]# 2. 获取所有行的第二列元素
second_column = arr[:, 1]
print("所有行的第二列元素:", second_column)  # 输出: [2 5 8]# 3. 获取前两行的前两列元素
sub_array = arr[:2, :2]
print("前两行的前两列元素:", sub_array)  # 输出: [[1 2]#        [4 5]]# 4. 使用布尔数组选择所有大于5的元素
mask = arr > 5
selected_elements = arr[mask]
print("所有大于5的元素:", selected_elements)  # 输出: [6 7 8 9]

通过本课程的学习,学员将能够熟练掌握Numpy数组的索引和切片操作,为后续的数据处理和分析打下坚实的基础。

http://www.dtcms.com/a/319954.html

相关文章:

  • Linux学习记录 DNS
  • “认知裂缝边缘”地带
  • 河南萌新联赛2025第(四)场:河南大学
  • Taro 扩展 API 深度解析与实战指南
  • 考研复习-计算机组成原理-第三章-存储系统
  • 广州工艺品摆件三维扫描逆向建模抄数设计-中科米堆CASAIM
  • [三数之和]
  • [安卓按键精灵开发工具]本地数据库的初步学习
  • Day116 若依融合mqtt
  • Minio 分布式集群安装配置
  • 28 HTB Forest 机器 - 容易 (1)
  • (附源码)基于Web的物流信息管理系统
  • 解锁webpack核心技能(二):配置文件和devtool配置指南
  • 机器学习在量化中的应用:如何从逻辑回归到XGBoost实现高效预测?
  • 将Excel数据导入SQL Server数据库,并更新源表数据
  • 河南萌新联赛2025第(四)场:河南大学(补题)
  • 北京JAVA基础面试30天打卡04
  • 一文入门 matplotlib:从基础图表到数据可视化初体验
  • git branch -a无法查看最新的分支
  • CNB私有化部署Dify(零成本)教程
  • 操作系统1.4:操作系统的体系结构
  • ollama 运行gpt-oss 系列教程
  • Numpy科学计算与数据分析:Numpy数组创建与应用入门
  • DevOps简单教程应用
  • ⭐CVPR2025 RoboBrain:机器人操作的统一大脑模型[特殊字符]
  • Redis(八):Redis高并发高可用(哨兵Sentinel)
  • 上海一家机器人IPO核心零部件依赖外购, 募投计划频繁修改引疑
  • QDataStream入门
  • Redis实战(8) -- 分布式锁Redission底层机制
  • 如何解决用阿里云效流水线持续集成部署Nuxt静态应用时流程卡住,进行不下去的问题