【Python Numpy教程】切片和索引

这篇具有很好参考价值的文章主要介绍了【Python Numpy教程】切片和索引。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

NumPy是Python中用于科学计算的重要库之一,它提供了多维数组对象和许多用于操作这些数组的函数。在本教程中,我们将探讨NumPy中的数组切片和索引,这是使用NumPy进行数据处理和分析时的关键概念。数组切片和索引使您能够访问、操作和修改NumPy数组的元素,对于数据处理和提取特定数据非常有用。


一、切片和索引是什么?

当使用NumPy进行数据处理时,切片和索引是两个关键概念。
索引 就像是查找数组中的元素的地址。就像您查找书中的特定页数一样,索引帮助您找到数组中特定位置的值。索引从0开始,所以第一个元素的索引是0,第二个是1,以此类推。
切片 就像是从数组中切出一部分。可以想象成切面包,您可以选择切出的部分的起始和结束位置。这允许您提取数组中的一段数据,而不是整个数组。
索引帮助您找到一个具体的元素,而切片则让您可以选择一个范围,取出一组元素,或者按照一定规则筛选出数组中的数据。这两个工具对于从大型数据集中获取所需信息非常有用,让数据处理更加高效。

二、数组索引

操作

在NumPy中,您可以使用索引来访问数组中的元素。索引从0开始,使用[]进行索引操作,因此第一个元素的索引是0,第二个元素的索引是1,依此类推,如果学过C语言的同学,应该可以理解的非常的快,这其实和C语言数组取value是一样的。以下是一些示例:

示例代码1

import numpy as np

# 创建一个示例数组
arr = np.array([1, 2, 3, 4, 5])

# 访问第一个元素
print(arr[0])  # 输出: 1

# 访问第三个元素
print(arr[2])  # 输出: 3

python数组索引和切片,numpy基础教程,python,numpy,开发语言,鸿蒙软件开发,华为,鸿蒙系统,1024程序员节

2.3 示例代码2

您还可以使用负索引从数组末尾开始访问元素,例如 -1 表示最后一个元素,-2 表示倒数第二个元素,以此类推。

# 访问最后一个元素
print(arr[-1])  # 输出: 5

# 访问倒数第二个元素
print(arr[-2])  # 输出: 4

python数组索引和切片,numpy基础教程,python,numpy,开发语言,鸿蒙软件开发,华为,鸿蒙系统,1024程序员节

2.4 示例代码3

可以使用slice函数进行指定范围和step索引

s = slice(2,7,2)
arr = np.arange(10)
print(arr)
print(arr[s])

python数组索引和切片,numpy基础教程,python,numpy,开发语言,鸿蒙软件开发,华为,鸿蒙系统,1024程序员节

三、数组切片

3.1 最基础的数组切片

NumPy是一个强大的Python库,用于科学计算和数据分析,它提供了用于处理多维数组的功能。数组切片是一种在NumPy中常用的技术,用于获取数组的子集。让我们逐步介绍NumPy数组切片的格式、用法和示例代码。

1. 切片格式:

numpy的基础切片其实和我们的python的list,元组这些切片是一样的!但他还有其他的高级用法

NumPy数组切片的基本格式如下:
array[start:stop:step]

1.start:起始索引(包含在切片中),默认为0。
2.stop:终止索引(不包含在切片中)。
3.step:步长,用于控制切片的间隔,可以为负数。

那么多于多维数组,之间使用逗号隔开

[维度1切片,维度2切片...]

2. 如何使用:

通过这个基本格式,您可以创建一个切片对象,然后应用到NumPy数组上,以获取所需的子数组。

3. 示例代码:

下面是一些示例代码,演示如何使用NumPy数组切片:

import numpy as np

# 创建一个NumPy数组
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

# 获取索引1到4之间的元素(不包括索引4)
slice1 = arr[1:4]
print(slice1)  # 输出:[1 2 3]

# 获取索引2以及之后的元素
slice2 = arr[2:]
print(slice2)  # 输出:[2 3 4 5 6 7 8 9]

# 获取索引0到8之间,步长为2的元素
slice3 = arr[0:8:2]
print(slice3)  # 输出:[0 2 4 6]

# 使用负数索引,获取倒数第三个元素到末尾
slice4 = arr[-3:]
print(slice4)  # 输出:[7 8 9]

# 从末尾开始逆序获取数组
slice5 = arr[::-1]
print(slice5)  # 输出:[9 8 7 6 5 4 3 2 1 0]

# 使用二维数组的切片
arr2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
slice6 = arr2d[:2, 1:]
print(slice6)
# 输出:
# [[2 3]
#  [5 6]]

python数组索引和切片,numpy基础教程,python,numpy,开发语言,鸿蒙软件开发,华为,鸿蒙系统,1024程序员节

这些示例演示了如何使用NumPy数组切片来获取不同范围的数组元素,以及如何应用于多维数组。切片是NumPy中强大且灵活的工具,可用于数据处理和分析中的各种任务。

3.2 切片中包括省略号

基本格式

NumPy数组切片的"…"(省略号)是一种特殊的切片操作,通常用于处理多维数组,其中维度较多,但只想在其中的一个或多个维度上执行切片操作。省略号可以用来代替一系列冒号(:)来表示多个维度的切片。
格式:
array[…, slice1, slice2, …]

省略号可以用于代替任意数量的冒号,以便对多维数组进行切片。以下是省略号的所有用法示例:

1. 单个省略号示例:

import numpy as np

arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])

# 使用单个省略号切片第一个维度
slice1 = arr[...]
print(slice1)
# 输出:
# [[[ 1  2  3]
#   [ 4  5  6]]
#
#  [[ 7  8  9]
#   [10 11 12]]


# 使用单个省略号切片第二个维度
slice2 = arr[:, ...]
print(slice2)
# 输出:
# [[[ 1  2  3]
#   [ 4  5  6]]
#
#  [[ 7  8  9]
#   [10 11 12]]

python数组索引和切片,numpy基础教程,python,numpy,开发语言,鸿蒙软件开发,华为,鸿蒙系统,1024程序员节

2. 多个省略号示例:

import numpy as np

arr = np.random.rand(2, 3, 4, 5)

# 使用多个省略号同时切片多个维度
slice3 = arr[..., 1, 2, ...]
print(slice3.shape)
# 输出:(2, 3)

# 使用多个省略号和其他切片
slice4 = arr[:, ..., 1:4, 2]
print(slice4.shape)
# 输出:(2, 3, 3)

python数组索引和切片,numpy基础教程,python,numpy,开发语言,鸿蒙软件开发,华为,鸿蒙系统,1024程序员节

这些示例演示了如何使用省略号来简化多维数组的切片操作。省略号可以用来代替多个冒号,从而更清晰和紧凑地表达切片操作,特别适用于高维数组的情况。


总结

在本教程中,我们介绍了如何使用NumPy进行数组切片和索引。这些功能使您能够有效地访问和操作NumPy数组中的元素。关键要点包括:

使用索引访问单个元素或使用负索引访问数组末尾的元素。
使用数组切片选择数组的特定部分,可以指定起始索引、结束索引和步长。
对于多维数组,可以使用逗号分隔的索引来访问不同维度。

这些技巧对于数据处理、分析和科学计算非常有用,帮助您轻松处理大量数据并提取感兴趣的信息。

希望本教程对您理解NumPy中的数组切片和索引有所帮助。继续学习和实践,以更好地掌握NumPy库的强大功能。文章来源地址https://www.toymoban.com/news/detail-770472.html

到了这里,关于【Python Numpy教程】切片和索引的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【深度学习】 Python 和 NumPy 系列教程(十二):NumPy详解:4、数组广播;5、排序操作

    目录 一、前言 二、实验环境 三、NumPy 0、多维数组对象(ndarray) 多维数组的属性 1、创建数组 2、数组操作 3、数组数学 4、数组广播 5、排序操作 1. np.sort() 函数 2. np.argsort() 函数 3. ndarray.sort() 方法 4. 按列或行排序 5. np.lexsort() 函数 6. np.partition() 函数 7. np.argpartition() 函

    2024年02月08日
    浏览(67)
  • 【数据分析之道-NumPy(三)】numpy切片与索引

    ✍ 作者简介: i阿极 ,CSDN Python领域新星创作者, 专注于分享python领域知识。 ✍ 本文录入于《数据分析之道》 ,本专栏针对大学生、初级数据分析工程师精心打造,对python基础知识点逐一击破,不断学习,提升自我。 ✍ 订阅后,可以阅读《数据分析之道》中全部文章内容

    2023年04月09日
    浏览(48)
  • 【Python 零基础入门】Numpy 常用函数 数组操作 & 数学运算

    Numpy (Numerical Python) 是 Python 编程语言的一个扩展程序库, 支持大量的维度数组与矩阵运算, 并提供了大量的数学函数库. Numpy 利用了多线程数组来存储和处理大型数据集, 从而提供了一个高效的方式来进行数值计算, 特别是对于矩阵预算和线性代数. np.assarray 可以将输入转换为

    2024年02月05日
    浏览(49)
  • Numpy 数组切片

    1.1、切片原理 列表切片是从原始列表中提取列表的一部分的过程。在列表切片中,我们将根据所需内容(如,从何处开始,结束以及增量进行切片)剪切列表。Python中符合序列的有序序列都支持切片(slice),例如列表,字符串,元组。 规则: 1.2、切片使用 1.2.1、获取列表

    2023年04月19日
    浏览(48)
  • 【Python Numpy】广播、数组的迭代

    在Python的科学计算领域,NumPy是一个强大的工具,它提供了用于操作多维数组的功能。广播(Broadcasting)是NumPy中的一个重要概念,它使得不同形状的数组之间的计算变得非常灵活和便捷。本文将介绍广播是什么,以及如何在NumPy中使用广播来进行数组计算。 在Python的科学计算

    2024年02月06日
    浏览(62)
  • Python numpy - 数组与矩阵的运算

    目录  数组array 一 数组的函数 unique函数  sum函数  max函数 二 数组的加减 三 数组的乘除  矩阵matrix 一 矩阵的生成 二 矩阵的加减 三  矩阵的乘法 创建数组a和b用来运算(至少两个) 数组常用函数 函数 作用 unique() 求数组里的唯一值,输出从小到大排列 sum() 对数组整

    2024年02月11日
    浏览(46)
  • Python numpy - 数组的创建与访问

    目录 一 数组array的创建途径 1  列表list  2 函数array  3 函数arange 4 函数zeros 5 函数eyes 6 随机函数randn/ randint 二 数组array的访问  1 访问形状/元素个数/数据类型  2 访问一维数组的位置/范围 3 访问二维数组的位置/范围 4 用:访问二维数组的切片 生成数组的常用途径 list列表

    2024年02月07日
    浏览(47)
  • 【Python入门第四十六天】Python丨NumPy 数组重塑

    重塑意味着更改数组的形状。 数组的形状是每个维中元素的数量。 通过重塑,我们可以添加或删除维度或更改每个维度中的元素数量。 实例 将以下具有 12 个元素的 1-D 数组转换为 2-D 数组。 最外面的维度将有 4 个数组,每个数组包含 3 个元素: 运行实例 从 1-D 重塑为 3-D

    2023年04月08日
    浏览(48)
  • 【Python入门知识】NumPy 数组搜索,案例+理论讲解

    前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 搜索数组 可以在数组中搜索(检索)某个值,然后返回获得匹配的索引。 要搜索数组,请使用 where() 方法。 实例 查找值为 4 的索引: 运行实例 更多python资料、源码、教程: 点击此处跳转文末名片获取 上例会返回一个元组:(array([

    2024年02月03日
    浏览(48)
  • NumPy 秘籍中文第二版:二、高级索引和数组概念

    原文:NumPy Cookbook - Second Edition 协议:CC BY-NC-SA 4.0 译者:飞龙 在本章中,我们将介绍以下秘籍: 安装 SciPy 安装 PIL 调整图像大小 比较视图和副本 翻转 Lena 花式索引 位置列表索引 布尔值索引 数独的步幅技巧 广播数组 NumPy 以其高效的数组而闻名。 之所以成名,部分原因是索

    2023年04月14日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包