【发布时间】:2019-11-13 12:00:45
【问题描述】:
我有一个关于搜索数组的问题。我需要找到一些存储在数组中的字符串序列,例如它可能看起来像这样 数组1:
['818181' '747473' '747474' '636363' '767676' '737373' '727373' '373838'
'697070' '686869' '115115115' '737474' '757575' '777777' '818181' '747473'
'747474' '636363' '767676' '737373' '727373' '757575' '696969']
这是一个带有字符串的 numpy 数组。 Dtype显示它是S9。 然后我有另一个具有相同结构但更大的主阵列。我正在寻找最有效的方法来找到 array1 在主数组中开始的位置,所以就像我在 numpy 数组中寻找指定的模式一样。这些值重复,我需要找到完全相同的值。我一直在为此寻找最佳解决方案,但找不到任何有用的方法。主阵列非常大,我需要在 1 秒内获得阵列 1 的位置。我发现了一些关于在数组中查找序列的示例脚本,不幸的是这些都没有帮助我。大多数情况下,他们在小数组中找到一些整数值。我需要一些建议。
我尝试在 enumerate() 中使用 for i, e 遍历整个数组 所以一个元素看起来像这样 - '818181'。然后我在计算一行中的 23 个元素(在这个例子中)是否相同。但是当第 5 个元素出错时,我将不得不去我发现第 1 个的地方才能 100% 成功(因为模式可以相互叠加),而且速度非常慢。
主数组和array1类似,但是是1000x并且有更多的值
【问题讨论】:
标签: python arrays numpy sequence