我有一个数组,包含约80000个数组,每个数组的长度为6
large = [['A' 'B' 'C' 'D' 'E' 'F']
['A' 'B' 'C' 'D' 'E' 'G']
['A' 'B' 'C' 'D' 'E' 'H']
['A' 'B' 'C' 'D' 'E' 'K']
['A' 'B' 'C' 'D' 'E' 'L']
['A' 'B' 'C' 'D' 'E' 'M']
['A' 'B' 'C' 'D' 'E' 'N']
['A' 'B' 'C' 'D' 'O' 'X']
['A' 'B' 'C' 'D' 'O' 'Y']
['A' 'B' 'C' 'D' 'O' 'Z']
...
]
我还有一个小数组,small = ['K' 'L' 'M' 'N' 'O' 'P']
我需要使用查找表(dataframe)将small
的每个元素与large
中子数组的每个元素进行比较:
Key A B C D E
0 A xx yy zz hh
1 B akj gh xc op
2 C gh xx qq kbu
3 D fg xx lk cbv
4 E jhk xx ry dsg
... ...
对于每个查找,我需要获取值并将其传递给函数:
def myfunc(val):
# do something with val...
return some_number_based_on_val
例如,第一个比较可能是:['K' 'L' 'M' 'N' 'O' 'P']
与['A' 'B' 'C' 'D' 'E' 'F']
,结果是[6,43,76,12,9,1]
。最后,我会把这些数字加起来
它本质上是一种类似点积的操作,但具有自定义功能。 因此,所需的输出将是8000x1阵列
我如何才能有效地做到这一点?按顺序执行此操作意味着要进行约480000次查找,而且看起来相当缓慢
由于您使用的是熊猫,因此可以使用熊猫的贴图:
将它们链接在一起:
相关问题 更多 >
编程相关推荐