Python:使用 for 循环在 numpy 向量(包含随机 0,1,2 数字)中搜索序列 (1,1,2):

Python: searching a sequence (1,1,2) in a numpy vector (contains random 0,1,2 numbers) with for loop:

我试过的代码

rand_array2 = np.random.randint(0,3, size=1000)
rand_array2

正在寻找一种方法,让我可以使用 for 循环计算 rand_array2 中的 (1,1,2) 个序列。

可能的解决方案如下:

import numpy as np
rand_array2 = np.random.randint(0,3, size=1000) 
pattern = np.array((1,1,2))    
matches=0
for i in range(len(rand_array2)-len(pattern)+1):
    match = rand_array2[i:i+3]==pattern
    if match.all():
        matches+=1
matches

试试这个方法。这里我们遍历随机数组的范围并匹配任何序列。这应该适用于任何大小的序列,只要它小于随机数组的长度。

seq = (1, 1, 2)
arr = (1, 1, 2, 1, 3, 2, 3, 2, 1, 1, 2, 1)
count = 0
for i in range(len(arr) - len(seq) + 1):
    if seq == arr[i:i+len(seq)]:
        count += 1

编辑:有点晚了。