python预处理字符串_寻找一种预处理字符串特征的方法

本文探讨了两种将字符串转换为数字的方法:简单的数字映射和使用哈希函数。简单映射快速但不抗位置变化,而哈希函数如MD5提供了更好的稳定性但可能面临碰撞问题。哈希函数在处理大量字符串数据时能提供高效且独特的标识,适合于数据存储和检索场景。
摘要由CSDN通过智能技术生成

编辑:也许简单的数字映射可以更快,而且没有冲突:import hashlib

from numpy import array

features = array(['oklahoma', 'florida', 'idaho', 'pennsylvania', 'alabama','washington'], dtype=object)

numbers = range(0, len(features))

num2string = dict(zip(numbers, features))

string2num = dict(zip(features, numbers))

# read the result

for i in num2string:

print "%i => '%s'" % (i, num2string[i])

print "usage test:"

print string2num['oklahoma']

print num2string[string2num['oklahoma']]

您将得到数组中每个项目的简单数字序列:

^{pr2}$

优点:简单快捷

缺点:如果改变同一字符串在数组中的位置,将得到不同的数字,这与散列字符串不同。在

哈希的使用

您可以使用一些精心选择的hask算法散列字符串。你必须小心哈希函数的碰撞次数。如果两个数据具有相同的哈希值,则在输入中需要一个重复的数字。在本例中,md5哈希函数用于:import hashlib

from numpy import array

def string_to_num(s):

return int(hashlib.md5(s).hexdigest(), 16)

features = array(['oklahoma', 'florida', 'idaho', 'pennsylvania', 'alabama','washington'], dtype=object)

# hash those strings

features_string_for_number = {}

for i in features:

hash_number = string_to_num(i)

features_string_for_number[hash_number]=i

# read the result

for i in features_string_for_number:

print "%i => '%s'" % (i, features_string_for_number[i])

print "usage test:"

print string_to_num('oklahoma')

print features_string_for_number[string_to_num('oklahoma')]

哈希部分取自here。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值