在Python中将列表转换为数组dtype = int64

时间:2014-04-14 02:14:18

标签: python arrays list

我可以转换此列表:

[0, 1, 2, 3, 4, 5, array([6, 9], dtype=int64), 7, 8, array([6, 9], dtype=int64)]

进入这个:

[array([0], dtype=int64), array([1], dtype=int64), array([2], dtype=int64), array([3], dtype=int64), array([4], dtype=int64), array([5], dtype=int64), array([6, 9], dtype=int64), array([7], dtype=int64), array([8], dtype=int64), array([6, 9], dtype=int64)]

2 个答案:

答案 0 :(得分:2)

FWIW,这是一个不寻常的数据结构。但鉴于此,也许这样的事情可行:

>>> a = [0, 1, 2, 3, 4, 5, np.array([6, 9], dtype=np.int64), 7, 8, np.array([6, 9], dtype=np.int64)] 
>>> b = [np.atleast_1d(np.asarray(x,dtype=np.int64)) for x in a]

给出了

>>> pprint(b)
[array([0], dtype=int64),
 array([1], dtype=int64),
 array([2], dtype=int64),
 array([3], dtype=int64),
 array([4], dtype=int64),
 array([5], dtype=int64),
 array([6, 9], dtype=int64),
 array([7], dtype=int64),
 array([8], dtype=int64),
 array([6, 9], dtype=int64)]

答案 1 :(得分:0)

不应该这样做吗?

L = [0, 1, 2, 3, 4, 5, array([6, 9], dtype=int64), 7, 8, array([6, 9], dtype=int64)]
new_L = [array(x, dtype=int64) for x in L]

编辑:

如果你想要单例数组,那么

new_new_L = [array(x, dtype=int64) if type(x)==ndarray else array([x], dtype=int64) for x in L]