起因
调试代码的时候报错说u_nodes_ratings, v_nodes_ratings = u_nodes_ratings.astype(np.int64), v_nodes_ratings.astype(np.int64)
TypeError: int() argument must be a string, a bytes-like object or a number, not 'map'
我靠,这是个什么错误,,调试了一上午,检查了所有的函数接口,并没有发现什么异常
直到将u_nodes_ratings的属性print出来
首先是print("u_nodes_ratings type", type(u_nodes_ratings))
# u_nodes_ratings type 并没有什么异常
但是,再次print(u_nodes_ratings)时
# 我靠,咋就从ndarray变成了map object了呢
这个map object又是啥
debug结果
这套代码是从python2改来的,python2和3有些返回类型存在差异
python3里面,map()的返回值已经不再是list,而是iterators, 所以想要使用,只用将iterator 转换成list 即可, 比如 list(map())
参考文献:如何在python 3中将map对象转换为numpy ndarray?cloud.tencent.commap运行后提示错误map object at 0x0000028BEC618198blog.csdn.net