簡體   English   中英

在Python中將列表轉換為數組dtype = int64

[英]Convert list into array dtype=int64 in Python

我可以轉換此列表:

[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)]

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)]

這不行嗎?

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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM