📜  从 Numpy 数组中按索引选择元素或子数组

📅  最后修改于: 2022-05-13 01:54:30.819000             🧑  作者: Mango

从 Numpy 数组中按索引选择元素或子数组

NumPy 数组的元素像普通数组一样被索引。第一个元素的索引为 0,最后一个元素的索引为 n-1,其中 n 是元素的总数。

从 NumPy 数组中选择单个元素

这些 ndarray 的每个元素都可以使用其索引号进行访问。

示例:以下代码显示如何访问 NumPy 数组的元素。

Python3
import numpy as np
  
# NumPy Array
numpyArr = np.array([1, 2, 3, 4])
print("numpyArr[0] =", numpyArr[0])
print("numpyArr[-1] =", numpyArr[-1])


Python3
import numpy as np
  
# NumPy Array
numpyArr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
  
# the slice 3:6 is passed instead 
# of index
print("Sub-Array=", numpyArr[3:6])


Python3
import numpy as np
  
numpyArr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
  
# works same as 0:6
print("Sub-Array=", numpyArr[:6])


Python3
import numpy as np
  
numpyArr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
  
# same as 3:9 or 3:n, where n is
# the length of array
print("Sub-Array=", numpyArr[3:])


输出:

numpyArr[0] = 1
numpyArr[-1] = 4

在第一种情况下,我们使用它的索引号访问数组的第一个元素。在第二种情况下,我们使用负索引访问数组的最后一个元素。

从 NumPy 数组中选择子数组(切片)

为了得到一个子数组,我们传递一个切片来代替元素索引。

句法:

numpyArr[x:y]

这里 x 和 y 是所需子数组的开始和最后一个索引。

例子:

Python3

import numpy as np
  
# NumPy Array
numpyArr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
  
# the slice 3:6 is passed instead 
# of index
print("Sub-Array=", numpyArr[3:6])

输出:

Sub-Array= [4 5 6]

选择了从第 3 个索引到第 6 个索引(不包括最后的第 6 个索引)的子数组。您可以通过将起始索引留空来从第一个元素开始对子数组进行切片。

示例:以下代码从第一个元素开始选择子数组。

Python3

import numpy as np
  
numpyArr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
  
# works same as 0:6
print("Sub-Array=", numpyArr[:6])

输出:

Sub-Array= [1 2 3 4 5 6]

同样,将冒号的左侧留空将为您提供一个数组,直到最后一个元素。

示例:以下代码选择从特定索引开始到最后一个索引的子数组。

Python3

import numpy as np
  
numpyArr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
  
# same as 3:9 or 3:n, where n is
# the length of array
print("Sub-Array=", numpyArr[3:])

输出:

Sub-Array= [4 5 6 7 8 9]