簡體   English   中英

將長 2D 列表轉換為 NumPy 數組不會轉換里面的列表

[英]Converting long 2D list to NumPy array dosn't convert the lists inside

我想將我的長 python 2D 列表轉換為 NumPy 2D 數組,但在轉換列表中的列表后仍然保留為 vanila 列表:

import numpy as np

# The list should be longer, but this long is enogh to state the problem
# And please don't ask why is it about zombies
list = [['<sup>4</sup>;{{P|Mummy Zombie|2}}'], 
        ['<sup>2</sup>;{{P|Ra Zombie|2}}'],
        ['<sup>4</sup>;{{P|Mummy Zombie|2}}', '<sup>5</sup>;{{P|Mummy Zombie|2}}']]

np.array(list)

list
>>> [list(['<sup>4</sup>;{{P|Mummy Zombie|2}}'])
     list(['<sup>2</sup>;{{P|Ra Zombie|2}}'])
     list(['<sup>4</sup>;{{P|Mummy Zombie|2}}', '<sup>5</sup>;{{P|Mummy Zombie|2}}'])]

我所期望的:

list = [['1', '7', '0'], ['6', '2', '5'], ['7', '8', '9'], ['41', '10', '20']]

np.array(list)

list
>>>[['1' '7' '0']
    ['6' '2' '5']
    ['7' '8' '9']
    ['41' '10' '20']]

這個問題有什么解決辦法嗎? 還是我應該將此作為錯誤報告給 NumPy?

首先,您使用列表作為變量名。 它是一種內置類型。 因此,您不應該使用它。

之后,您的列表數組分別按行包含 1,1,2 個元素。 每行的列號應彼此相等。

list2 = [['<sup>4</sup>;{{P|Mummy Zombie|2}}'], 
    ['<sup>2</sup>;{{P|Ra Zombie|2}}'],
    ['<sup>4</sup>;{{P|Mummy Zombie|2}}'], 
    ['<sup>5</sup>;{{P|Mummy Zombie|2}}']]

np.array(list2)
>>> array([['<sup>4</sup>;{{P|Mummy Zombie|2}}'],
   ['<sup>2</sup>;{{P|Ra Zombie|2}}'],
   ['<sup>4</sup>;{{P|Mummy Zombie|2}}'],
   ['<sup>5</sup>;{{P|Mummy Zombie|2}}']], dtype='<U33')


np.array(list2).shape
>>>(4, 1)

暫無
暫無

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

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