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()**
函数准备一个数组对象。然后我们定义一个切片对象,分别用开始、停止、步进值 2 、 7 和 2 定义。此后,该切片对象被传递到数组,其中从索引 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 库中不同的索引方法。然后在例子的帮助下,我们讲述了不同的用例。