NumPy 索引和切片

原文:https://www.studytonight.com/numpy/python-numpy-indexing-and-slicing

在本教程中,我们将介绍 Numpy 库中的索引和切片。

访问和修改Numpy 库中数组对象 t 的内容索引切片可以像 Python 的内置容器对象一样完成。

我们在之前的教程中也提到过,数组对象中的项目总是遵循从零开始的索引。

Numpy 数组切片:

在 NumPy 数组中,切片基本上是从数组中提取一系列元素的方式。在 NumPy 中,数组中的切片执行方式与 python 列表中的相同。

简单地说,如果你有一个 100 个元素的数组,并且你想只挑选一部分值,那么我们可以执行切片,并从完整的数组中获得所需的一组值。在下面的示例中,您将看到切片的代码示例。

学习【Python 列表切片】 ,你可以在 Numpy ndarrays 上应用同样的方法。

数字数组索引:

Numpy 库中有三种类型的索引方法,如下所示:

  • 字段访问-这是使用值的索引的直接字段访问,例如,【0】索引用于第一个值,【1】索引用于第二个值,以此类推。

  • 基本切片——基本切片仅仅是 Python 切片基本概念的扩展,扩展到 n 维。为了构建 Python 切片对象,您只需要将启动停止步进参数传递给内置的**slice**功能。此外,这个切片对象被传递给数组以提取数组的一部分。

  • 高级索引(下一页将介绍)

让我们举一些例子来理解这些概念。

示例 1:切片数组

在下面给出的代码示例中,我们将使用**arange()**函数准备一个数组对象。然后我们定义一个切片对象,分别用开始停止步进272 定义。此后,该切片对象被传递到数组,其中从索引 2 开始到 7 的部分将被切片,步长值为 2 。通过值,我们的意思是从 2 到 7,从 2 开始,每三个元素就会被拾取一次,2 之后我们跳转 3,包含 4,然后跳转 5,包含 6。

您也可以通过将由冒号分隔的切片参数如(开始:停止:步骤)直接赋予标准对象来获得相同的结果。

import numpy as np 

a = np.arange(10) 
print("The ndarray is :")
print(a)

s = slice(2,7,2) 
print("After applying slice() Function:")
print (a[s])

应用切片()后的标准排列为: 【0 1 2 3 4 5 6 7 8 9】 功能: 【2 4 6】

示例 2:切片单个项目

在下面给出的代码示例中,我们将从数组对象中切下一个项目。使用索引可以非常容易地切掉单个数组

import numpy as np 

a = np.arange(15)
print("The array is :")
print(a)
# using the index directly
b = a[7] 
print("The Eighth item in the array is :")
print (b)

阵为: 【0 1 2 3 4 5 6 7 8 9 10 11 12 13 14】 阵中第八项为: 7

例 3:

在下面给出的示例中,我们将从给定的索引开始对项目进行切片,直到最后一个索引或最后一个元素:

import numpy as np

a = np.arange(20) 
print("The array is :");
print(a)

print("Slicing of items starting from the index:")
print (a[2:])

数组为: 【0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19】 从索引开始对项目进行切片: 【2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19】

例 4:

在下面给出的示例中,我们将在两个给定的索引之间分割所有项目:

import numpy as np

a = np.arange(20) 
print("The array is :");
print(a)

print("Slicing of items starting from the index:")
print (a[2:8])

数组为: 【0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19】 从索引开始对项目进行切片: 【2 3 4 5 6 7】

注: 从上面的输出,很明显会排除结束指标处的值。

示例 5:使用省略号

切片时,使用省略号( )制作一个与数组的维度相同长度的选择元组。对于一个多维数组,如果省略号用在行的位置,它将返回一个由行中的项目组成的数组,对于列也是如此。

下面我们有一个使用省略号的例子:

import numpy as np 
a = np.array([[11,2,23],[33,44,5],[84,25,16]]) 

print ("The array is :") 
print (a )
print ('\n')

#To return array of items in the second column 
print ('The items in the second column are:')  
print (a[..., 1] )
print ('\n')

# In order to slice all items from the second row 
print ('The items in the second row are:') 
print (a[1, ...])
print ('\n') 

# In order to slice all items from column 1 onwards 
print ('The items onwards to column 1 are:' )
print (a[..., 1:])

数组为: 【【11 2 23】 【33 44 5】 【84 25 16】】

第二列的项目为: 【2 44 25】

第二行的项目为: 【33 44 5】

第一列向前的项目为: 【【2 23】 】

摘要

在本教程中,我们已经介绍了 Numpy 库中索引和切片的概念,Numpy 库中不同的索引方法。然后在例子的帮助下,我们讲述了不同的用例。