在 python 中浮动的字母数字组合
Letter number combo to float in python
def computefeatures(node_id):
return [ord(node_id), len(node_id)]
我正在为我的节点 ID 计算特征,这些特征是字母和数字的组合。 ord 不起作用,是否有其他解决方法。
我的名单是:
ln0
Out[88]:
0 C1
1 C2
2 C3
3 C4
4 C5
5 C6
6 G1
7 I1
8 O1
9 P1
10 P2
11 P3
12 R1
13 R2
14 R3
15 R4
16 R5
17 R6
dtype: object
如果您的节点由一个字母后跟一个整数组成,而您只想将它们映射到浮点数,则可以通过多种方式完成。
一种方法是将您的 node_id 转换为 float 方法 hex
返回的那种十六进制字符串(例如,(3.14).hex() = '0x1.91eb851eb851fp+1'
)。取字母的ord
,转换成十六进制字符串,作为尾数的小数部分。取整数部分并将其用作指数。创建字符串后,使用 class 方法将其映射到浮点数 float.fromhex
:
def compute_feature(node_id):
n = ord(node_id[0])
i = node_id[1:]
hex_string = '0x1.' + hex(n)[2:] + 'p+' + i
return float.fromhex(hex_string)
例如,
>>> compute_feature('C1')
2.5234375
这种方法的优点是您可以使用 float 方法 hex
和少量解析来从 float 中恢复节点 ID。
def computefeatures(node_id):
return [ord(node_id), len(node_id)]
我正在为我的节点 ID 计算特征,这些特征是字母和数字的组合。 ord 不起作用,是否有其他解决方法。
我的名单是:
ln0
Out[88]:
0 C1
1 C2
2 C3
3 C4
4 C5
5 C6
6 G1
7 I1
8 O1
9 P1
10 P2
11 P3
12 R1
13 R2
14 R3
15 R4
16 R5
17 R6
dtype: object
如果您的节点由一个字母后跟一个整数组成,而您只想将它们映射到浮点数,则可以通过多种方式完成。
一种方法是将您的 node_id 转换为 float 方法 hex
返回的那种十六进制字符串(例如,(3.14).hex() = '0x1.91eb851eb851fp+1'
)。取字母的ord
,转换成十六进制字符串,作为尾数的小数部分。取整数部分并将其用作指数。创建字符串后,使用 class 方法将其映射到浮点数 float.fromhex
:
def compute_feature(node_id):
n = ord(node_id[0])
i = node_id[1:]
hex_string = '0x1.' + hex(n)[2:] + 'p+' + i
return float.fromhex(hex_string)
例如,
>>> compute_feature('C1')
2.5234375
这种方法的优点是您可以使用 float 方法 hex
和少量解析来从 float 中恢复节点 ID。