Skip to main content
 首页 » 编程设计

python之将 dtype ='U77' 类型的对象转换为 numpy 数组

2025年05月04日9虾米哥

我有一个对象 dtype='<U77'类型,由一串数字组成,以空格分隔:

array('[ 0.20988965  0.05172284 -0.13468404 ...  2.06070718 -0.6160391\n  3.        ]', 
  dtype='<U77') 

如何将其转换为 numpy 数组?

请您参考如下方法:

即使你想做一些笨拙的字符串解析来尝试修复这个对象,你也做不到。您已经丢失了几乎所有原始数据,并且无法仅通过查看字符串来找回它。

看到中间的 ... 了吗?这就是当您打印 一个大到足以触发汇总的数组时发生的情况:

>>> print(numpy.arange(1001)) 
[   0    1    2 ...  998  999 1000] 

看起来您打印了一个大数组,然后对生成的字符串调用了array。 NumPy 不是为 print 可逆而设计的,即使在它是可逆的情况下,在打印输出上调用 array 也不是你逆转它的方式.

您需要重做最初生成数组的计算,并选择一种更好的方法来保存结果,例如 numpy.save。