python - 错误 : 'Numpy.str_' object has no attribute 'decode'

标签 python python-3.x numpy attributes

我尝试在基于 python3 的 Crab(开源推荐系统)上运行测试。然后出现错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/Dennis/anaconda/lib/python3.5/site-packages/scikits/crab/datasets/base.py", line 201, in load_sample_movies
    data_songs[u_ix][i_ix] = float(rating)
ValueError: could not convert string to float: "b'3.0'"

我尝试使用“decode()”来转换字符串,但它不起作用:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/Dennis/anaconda/lib/python3.5/site-packages/scikits/crab/datasets/base.py", line 202, in load_sample_movies
    rating = rating.decode('utf-8')
AttributeError: 'numpy.str_' object has no attribute 'decode'  

任何帮助将不胜感激!

最佳答案

问题在于 rating 是字符串中的字符串,因此当您尝试将 "b'3.0'" 之类的字符串转换为 float 时,它会给出一个valueError 因为你前面还有 b 无法转换为 float。

我想您需要在 '3.0' 前面进行字节编码,所以一种方法是评估 rating 以在类型转换之前将其从字符串转换为字节它变成一个 float (注意,eval 可能有一些安全问题)。

>>> type(eval(rating))
<class 'bytes'>
>>> data_songs[u_ix][i_ix] = float(eval(rating))

关于python - 错误 : 'Numpy.str_' object has no attribute 'decode' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38790126/

相关文章:

python - numpy.genfromtxt 和 numpy.loadtxt 的区别,以及 Unpack

python - 使用 web2py 查找在 Google 应用引擎中热链接的网站的域名

python - 无法从 python 将记录插入 Sqlite,语法错误

python - 在 pandas DataFrame 中查找重复行的索引

python - 使用 .apply() 定义要在 DataFrame 上使用的函数

Python时间表 "Time is freezing"

python - np.where 相当于一维数组

python - y 轴上 matplotlib 中的百分比符号

python - 如何更改 tkinter 文本小部件中某些单词的颜色?

python - 切片 3d numpy 数组 - 误解