Python 获取指定范围索引的子数组

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]

主要我们将使用 Pythonslicing 特性从数组中获取子数组。slicing 用于选择可迭代对象的一系列项。

语法

iterable_obj[start:stop:step]

使用列表切片

我们可以使用列表切片来获取子数组。以下是使用列表切片的语法:

list_object[start : end : step]

在这里:

  • Start − 切片开始的索引。默认值为0。

  • End − 切片停止的索引。注意这个索引的值不包含在结果中。默认值是可迭代对象的长度。

  • Step − 默认值为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]

在下面是一个示例:

  • 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个索引)。

使用数组模块

Python的数组模块也支持数组切片,这样我们就可以轻松地从一个大数组中获取子数组。以下是语法:

语法

array[start : end]

在这里,

  • 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])

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程