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
编辑:有点晚了。
我试过的代码
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
编辑:有点晚了。