Python 3.x 在python3中将map对象转换为numpy ndarray
下面的代码在python2中运行良好,但在迁移到python3之后,它就不起作用了。 如何在python3中更改此代码Python 3.x 在python3中将map对象转换为numpy ndarray,python-3.x,numpy,multidimensional-array,Python 3.x,Numpy,Multidimensional Array,下面的代码在python2中运行良好,但在迁移到python3之后,它就不起作用了。 如何在python3中更改此代码 for i, idx in enumerate(indices): user_id, item_id = idx feature_seq = np.array(map(lambda x: user_id, item_id)) X[i, :len(item_id), :] = feature_seq # ---- error here ----
for i, idx in enumerate(indices):
user_id, item_id = idx
feature_seq = np.array(map(lambda x: user_id, item_id))
X[i, :len(item_id), :] = feature_seq # ---- error here ----
错误:
TypeError: int() argument must be a string, a bytes-like object or a number, not 'map'
多谢各位 在PY3中,
map
就像一个生成器。您需要将其包装在list()
中,以生成np.array
可以使用的列表:例如
np.array(list(map(...)))
在python3中,Map返回一个迭代器,而不是一个列表。 您还可以尝试从map obj获取数组,仅用于一维数据 例如:
a=map(lambda x:x,range(10))
b=np.fromiter(a,dtype=np.int)
b
输出:
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
对于
多维数组
,请参考PY3中的,映射
就像一个生成器,您需要将其包装在list()
中,以生成np.array
可以使用的列表:例如np.array(list(map(…))
。非常感谢!!可能重复的