python如何将很长的数据字符串转换为numpy数组



我正在尝试将一个很长的字符串(如:'1,2,3,4,5,6…n'n=60M(转换为numpy.array。我尝试将字符串转换为列表,然后使用numpy.array((将列表转换为数组。但有一个问题是,当字符串转换为列表时,会使用大量内存(如果你知道原因,请告诉我,sys.getsizeof(list)比使用的内存小得多(。我也尝试过使用numpy.fromstring()。但似乎要花很多时间(等待很长时间,但仍然没有结果(。有没有什么方法可以减少使用的内存,并且更有效地将字符串拆分为多个部分?

当您有一个字符串值并在程序中对其进行更改时,以前的值将保留在内存的一部分中,更改后的字符串将放置在RAM的新部分中。

因此,RAM中的旧值保持未使用状态。

为此,使用了垃圾回收器,并从旧的、未使用的值中清除RAM。但这需要时间。

你可以自己做。您可以使用gc模块来查看对象的不同代请参阅:

import gc
print(gc.get_threshold())

结果:

(596, 2, 1)

在这个例子中,我们最年轻一代有596个对象,下一代有两个对象,最老一代有一个对象。