我有一个 3000x300 矩阵文件(浮点数)。当我阅读并转换为浮点数时,我得到了 float64,这是 python 中的默认值。我尝试了 numpy 和 map() 将其转换为 float32() 但它们似乎都非常低效。
我的代码:
x = open(readFrom, 'r').readlines()
y = [[float(i) for i in s.split()] for s in x]
用的时间:0:00:00.996000
numpy 实现:
x = open(readFrom, 'r').readlines()
y = [[np.float32(i) for i in s.split()] for s in x]
用的时间:0:00:06.093000
地图()
x = open(readFrom, 'r').readlines()
y = [map(np.float32, s.split()) for s in x]
用的时间:0:00:05.474000
如何非常有效地转换为 float32?
谢谢你。
Update:
numpy.loadtxt()
或numpy.genfromtxt()
无法为大文件工作(给出内存错误)。我已经发布了一个与此相关的问题,我在这里介绍的方法适用于巨大的矩阵文件(50,000x5000)。这是问题