如何跳过NumPy数组的每一个索引

如何跳过NumPy数组的每一个索引

在这篇文章中,我们将看到如何跳过NumPy数组的每一个索引。有多种方法来访问和跳过NumPy数组的元素。

方法1:

可以保持一个计数器来记录到目前为止所遍历的元素,然后一旦遇到第N个位置,就跳过该元素,并将计数器重置为0。 所有的元素都被追加到一个新的列表中,不包括在遍历时遇到的第N个索引元素。这期间需要的时间相当于O(n),其中n是numpy数组的大小。如果这些元素只需要打印而不需要存储,我们可以跳过创建另一个数组的声明。

示例:

# importing required packages
import numpy as np
  
# declaring a numpy array
x = np.array([1.2, 3.0, 6.7, 8.7, 8.2,
              1.3, 4.5, 6.5, 1.2, 3.0,
              6.7, 8.7, 8.2, 1.3, 4.5, 
              6.5])
  
# skipping every 4th element
n = 4
  
# declaring new list
new_arr = []
  
# maintaining cntr
cntr = 0
  
# looping over array
for i in x:
    
    # checking if element is nth pos
    if(cntr % n != 0):
        new_arr.append(i)
          
    # incrementing counter
    cntr += 1
  
print("Array after skipping nth element")
print(new_arr)

输出:

跳过第n个元素后的数组

[3.0, 6.7, 8.7, 1.3, 4.5, 6.5, 3.0, 6.7, 8.7, 1.3, 4.5, 6.5]

方法2:使用NumPy模数法

首先可以用numpy.range()方法将数组排列成间隔均匀的大块。

语法: np.range(start,stop,step)

参数:

start:区间的起点
stop:区间的终点
step:开始和结束区间之间的步数

然后,np.mod()方法被应用于所获得的列表区间,每个元素的modulo被计算为第n个索引。原始数组中模数输出不为0的元素将作为最终列表返回。

示例

# importing required packages
import numpy as np
  
# declaring a numpy array
x = np.array([0, 1, 2, 3, 2, 5, 2, 7, 2, 9])
  
print("Original Array")
print(x)
  
# skipping third element
new_arr = x[np.mod(np.arange(x.size), 3) != 0]
  
print("Array after skipping elements : ")
print(new_arr)

输出:

Original Array

[0 1 2 3 2 5 2 7 2 9]

Array after skipping elements :

[1 2 2 5 7 2]

方法3:NumPy分片

NumPy切片基本上是数据子采样,我们创建一个原始数据的视图,这将产生恒定的时间。变化是对原始数组进行的,整个原始数组被保存在内存中。数据的拷贝也可以明确地进行。

语法:

arr[start:end:st]

这里,其中start是起始索引,end是停止索引,st是步长,其中步长不等于0。 并且,它返回一个子数组,分别包含属于st索引的元素。该数组的索引被假定为从0开始。

示例

# importing required packages
import numpy as np
  
# declaring a numpy array
x = np.array([0, 1, 2, 3, 2, 5, 2, 7, 2, 9])
  
# calculating length of array
length = len(x)
  
# accessing every third element 
# from the array
print("List after n=3rd element access")
print(x[0:length:3])

输出:

List after n=3rd element access

[0 3 2 9]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程