要在父数组上找到子数组的索引,可以使用NumPy库中的numpy.where
函数或者numpy.isin
结合numpy.where
来实现。以下是具体的方法和示例代码:
numpy.where
import numpy as np
# 父数组
parent_array = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
# 子数组
sub_array = np.array([4, 5, 6])
# 找到子数组在父数组中的起始索引
indices = np.where(np.isin(parent_array, sub_array))[0][:-len(sub_array)+1]
print(indices)
numpy.searchsorted
import numpy as np
# 父数组
parent_array = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
# 子数组
sub_array = np.array([4, 5, 6])
# 找到子数组在父数组中的起始索引
indices = []
for i in range(len(parent_array) - len(sub_array) + 1):
if np.array_equal(parent_array[i:i+len(sub_array)], sub_array):
indices.append(i)
print(indices)
numpy.where
方法:np.isin(parent_array, sub_array)
会返回一个布尔数组,表示父数组中哪些元素在子数组中。np.where(np.isin(parent_array, sub_array))[0]
会返回这些元素的索引。[:-len(sub_array)+1]
是为了去除重复的索引,只保留子数组的起始索引。numpy.searchsorted
方法:这种方法在数据处理、数据分析和机器学习等领域中非常有用,特别是在需要找到数组中的子序列或模式时。
希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云