将长 2D 列表转换为 NumPy 数组不会转换内部的列表



我想将我的长python 2D列表转换为NumPy 2D数组,但转换后列表中的列表仍然保持为普通列表:

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

这个问题有什么解决办法吗?或者我应该将此作为bug报告给NumPy?

首先,使用list作为变量名。它是一个内置类型。因此,你不应该使用它。

之后,列表数组每行分别包含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)

最新更新