Python程序获取数组中指定索引范围内的子数组


数组是一种同构数据结构,用于存储一组相同数据类型的元素。数组中的每个元素都由键或索引值标识。

子数组

子数组定义为数组中连续元素的一小部分。如果我们取一个包含5个整数元素的数组,如下所示。

[9, 3, 1, 6, 9]

那么子数组将是 -

[9, 3]
[9, 3, 1] 
[3, 1, 6, 9]

Python中的数组

在Python中,我们没有特定的数据结构来表示数组。但是,我们可以使用列表来表示数组。

 [1, 2, 3, 4, 5]

我们还可以使用array或NumPy模块在python中处理数组。

array模块定义的数组。

array('i', [1, 2, 3, 4])

NumPy模块定义的NumPy数组。

array([1, 2, 3, 4])

以上所有数组都从索引0开始到(n-1)结束。

在本文中,我们将看到多种方法,使用指定的索引范围从数组中获取子数组。

输入输出场景

假设我们有一个包含9个整数值的输入数组。输出将是从索引1到4的子数组。

Input array:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Output:
[2, 3, 4]

主要我们将使用python的切片功能从数组中获取子数组。切片用于选择可迭代对象的一系列项。

语法

iterable_obj[start:stop:step]

使用列表切片

我们可以使用列表切片来获取子数组。以下是执行此操作的语法 -

list_object[start : end : step]

其中,

  • 开始  列表切片开始的起始索引。默认值为0。

  • 结束  列表切片停止的结束索引。请注意,此索引的值不属于最终结果的一部分。默认值为可迭代对象长度。

  • 步长  默认值为1。起始索引的增量。

示例

从以下示例中,我们可以看到一个数组和两个索引arr[1:7],用于从这些位置选择子数组。

# creating array
arr = [2, 5, 6, 7, 1, 9, 2, 0]
print ("The original array is: ", arr) 
print() 
# get the subarray 
result = arr[1:7]
print ("The subarray is: ", result) 

输出

The original array is:  [2, 5, 6, 7, 1, 9, 2, 0]
The subarray is:  [5, 6, 7, 1, 9, 2]

使用NumPy数组

在NumPy数组中,切片允许我们指定一系列索引,以从更大的数组中获取子数组。NumPy数组元素也像python列表一样进行索引。第一个元素的索引为0,最后一个元素的索引为n-1。

语法

numpyArray[start : end]

其中,

  • 开始  数组切片开始的起始索引。

  • 结束  数组切片停止的结束索引。

示例

以下是一个例子 -

import numpy as np
# creating array
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print ("The original array is: ", arr) 
print() 
# get the subarray 
result = arr[1:4]
print ("The subarray is: ", result) 

输出

The original array is:  [1, 2, 3, 4, 5, 6, 7, 8, 9]
The subarray is:  [2, 3, 4]

我们成功地获取了一个子数组,从第1个索引开始到第4个索引(不包括最后一个第4个索引)。

使用Array模块

python array模块也支持数组切片,因此我们可以轻松地从大数组中获取子数组。以下是语法 -

语法

array[start : end]

其中,

  • 开始  数组切片开始的起始索引。

  • 结束  数组切片停止的结束索引。

示例

在下面的示例中,我们成功地使用python array模块及其切片技术从索引1-8获取了子数组。

import array
# creating array
arr = array.array('i',[1, 2, 3, 4, 5, 6, 7, 8, 9])
print ("The original array is: ", arr) 
print() 

# get the subarray 
result = arr[1:8]
print ("The subarray is: ", result) 

输出

The original array is:  array('i', [1, 2, 3, 4, 5, 6, 7, 8, 9])

The subarray is:  array('i', [2, 3, 4, 5, 6, 7, 8])

更新于: 2023年5月29日

12K+ 浏览量

开启你的职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.