【发布时间】:2021-10-05 08:13:37
【问题描述】:
如何将包含字符串对象的 ndarray 列表映射到特定的浮点数?例如,如果用户决定将 orange 映射到 1.0 并将 grapefruit 映射到 2.0 ?
myList = [np.array([['orange'], ['orange'], ['grapefruit']], dtype=object), np.array([['orange'], ['grapefruit'], ['orange']], dtype=object)]
所以有人会:
convList = [np.array([['1.0'], ['1.0'], ['2.0']], dtype=float), np.array([['1.0'], ['2.0'], ['1.0']], dtype=float)]
我尝试实现这个功能:
def map_str_to_float(iterator):
d = {}
for ndarr in iterator:
for string_ in ndarr:
d[string_] = float(input('Enter your map for {}: '.format(string_)))
return d
test = map_str_to_float(myList)
print(test)
但我收到以下错误:
d[string_] = float(input('Enter your map for {}: '.format(string_)))
TypeError: unhashable type: 'numpy.ndarray'
我相信这是因为string_ 的类型是一个numpy 数组而不是一个字符串...
【问题讨论】:
标签: python string floating-point type-conversion numpy-ndarray