gpt4 book ai didi

python - 将字符串列表转换为数值向量以计算汉明距离

转载 作者:行者123 更新时间:2023-12-02 02:36:06 25 4
gpt4 key购买 nike

我有一个独特单词的列表。我必须计算两个字符串列表之间的汉明距离。假设字符串列表是:

a = ['a' , 'b', 'c' ]
b = ['b' , 'a', 'd' ]

让唯一单词列表为:

u = ['a', 'b', 'c', 'd', 'e']

我需要从 a 创建两个列表和b其长度与 u 相同。假设列表是 vavbva 的每个元素和vb将是 01 。它将是1 if u 的对应元素存在于 ab0否则。例如,

va = [1, 1, 1, 0, 0]
vb = [1, 1, 0, 1, 0]

然后我将计算 va 之间的汉明距离和vb使用 sklearn 的成对距离度量。最有效的计算方法是什么vavb来自a , bu

最佳答案

使用列表理解比使用 list(map(..)) 组合更快:

a = ['a' , 'b', 'c' ]
b = ['b' , 'a', 'd' ]

u = ['a', 'b', 'c', 'd', 'e']

sa=set(a)
sb=set(b)

va = [1 if x in sa else 0 for x in u]
vb = [1 if x in sb else 0 for x in u]

print(va)
print(vb)

输出:

[1, 1, 1, 0, 0]
[1, 1, 0, 1, 0]

让我们测量一下:

from timeit import timeit

print("map", timeit( lambda: list(map(lambda x: 1 if x in sa else 0, u)) ))
print("list-comp", timeit( lambda: [1 if x in sa else 0 for x in u]))

看看

map 41.271170677
list-comp 17.18380836300000 ( about 42% of the time map uses)

关于python - 将字符串列表转换为数值向量以计算汉明距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64291088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com