如何在 Python 中从 Numpy 数组中选择元素?
在本文中,我们将展示如何在 Python 中从 NumPy 数组中选择元素。
Python 中的 Numpy 数组
NumPy 数组是 NumPy 库的核心数据结构,顾名思义。该库的名称是“Numeric Python”或“Numerical Python”的缩写。
换句话说,NumPy 是一个 Python 库,可作为 Python 中科学计算的基础。其中一种工具是高性能的多维数组对象,是一种强大的数据结构,用于高效的数组和矩阵计算。
我们可以一次从 Numpy 数组中选择一个单独的元素或子数组。现在我们看一下从 Numpy 数组中选择元素的以下方法。
- 选择单个 NumPy 数组元素。
- 使用切片从 NumPy 数组中选择子数组。
- 只给出停止值来选择/访问子数组。
- 仅给出起始值来选择/访问子数组。
方法 1 – 选择单个 NumPy 数组元素
这些 ndarray 的每个元素都可以通过它们的索引号码进行访问。
算法(步骤)
下面是执行所需任务的算法/步骤 –
-
使用 import 关键字导入 numpy 模块并给其取一个别名 np。
-
通过向其传递 1 维数组作为参数,使用 numpy.array() 函数(返回 ndarray。ndarray 是一个满足给定要求的数组对象)来创建 numpy 数组。
-
使用正索引访问 NumPy 数组中的元素,并打印它。
-
使用负索引访问 NumPy 数组中的元素,即最后一个元素的索引 -1,并打印它。
负索引:
Python 允许“从结尾索引”,即负索引。
这意味着序列中最后一个值的索引为-1,倒数第二个索引为-2,以此类推。
当您想从可迭代对象的末尾(右侧)选择值时,您可以利用负索引。
示例
以下程序使用索引号码从输入的 NumPy 数组返回指定索引处的元素 –
# 使用别名 np 导入 numpy 模块
import numpy as np
# 通过传递 1 维数组作为参数创建 NumPy 数组
inputArray = np.array([4, 5, 1, 2, 8])
# 使用正索引访问 NumPy 数组中的索引 1 处的元素并打印它
print("The input array = ",inputArray)
print("Numpy array element at index 1:", inputArray[1]<)
# 使用负索引访问 NumPy 数组中的索引 -1 处的元素,即最后一个元素,并打印它
print("Numpy array element at index -1(last element):", inputArray[-1])
输出
执行以上程序将生成以下输出 –
The input array = [4 5 1 2 8]
Numpy array element at index 1: 5
Numpy array element at index -1(last element): 8
方法 2 – 使用切片从 NumPy 数组中选择子数组
为了获得子数组,我们可以用切片代替元素索引。
语法
numpyArray[start:stop]
其中, start, stop 分别为子数组的第一个和最后一个索引。
算法 (步骤)
以下是执行所需任务的算法/步骤:
-
使用 numpy.array() 函数(返回一个ndarray。该ndarray是一个满足给定要求的数组对象), 通过将1维数组作为参数传递给它来创建NumPy数组。
-
通过给定的开始和结束值使用切片访问索引位于2到5(不包含)的子数组,并打印它。
示例
以下程序使用切片从输入NumPy数组返回子数组,同时给出开始和结束值-
#导入带有别名名称的NumPy模块
import numpy as np
#创建一个1维NumPy数组
inputArray = np.array([4, 5, 1, 2, 8, 9, 7])
print("输入数组 = ", inputArray)
#通过给定的开始和结束值使用切片访问索引位于2到5(不包含)的子数组,并打印它。
print("索引位于2到5(不包含)的子数组 = ", inputArray[2:5])
输出
执行上述程序将生成以下输出-
输入数组 = [4 5 1 2 8 9 7]
索引位于2到5(不包含)的子数组 = [1 2 8]
方法3-仅通过停止值选择/访问子数组
通过将起始索引留空,可以从第一个元素开始切片子数组。
默认情况下将起始值作为0。
示例
以下程序从索引0(默认)开始从输入NumPy数组返回子数组到给定的停止值-
#导入带有别名名称的NumPy模块
import numpy as np
#创建一个1维NumPy数组
inputArray = np.array([4, 5, 1, 2, 8, 9, 7])
print("输入数组 = ", inputArray)
#通过只提供停止值打印从输入NumPy数组返回的子数组-
# 打印从索引0(默认)开始的子数组到给定的停止值
# 默认从0开始
print("从索引0(默认)开始的子数组至止值 = ",inputArray[:5])
输出
执行上述程序将生成以下输出-
输入数组 = [4 5 1 2 8 9 7]
从索引0(默认)开始的子数组至止值 = [4 5 1 2 8]
方法4-仅通过起始值选择/访问子数组
类似地,留空冒号左侧将为您提供一组到最后一个元素的数组。
示例
以下程序从给定的起始索引值到数组的最后一个索引值(default)返回输入的NumPy数组的子数组。
# 导入带别名的NumPy模块
import numpy as np
# 创建一个一维NumPy数组
inputArray = np.array([4, 5, 1, 2, 8, 9, 7])
# 打印从索引2到默认最后一个索引的子数组
print("Input Array = ",inputArray)
# 默认延伸到最后一个索引值
print("The sub-array till index 5(excluded)=", inputArray[2:])
输出
在执行时,上述程序将生成以下输出 −
Input Array = [4 5 1 2 8 9 7]
The sub-array till index 5(excluded)= [1 2 8 9 7]
结论
在本文中,我们学习了如何使用四个不同的示例在Python中选择numpy数组的元素。 我们还学习了有关切片NumPy数组的知识。