加快创建随机数据

2024-04-20 06:42:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了这个非常简单的脚本来创建一些随机数据,用于机器学习。你知道吗

from random import randint

f = open('2014-07-17-1M_testdata_1Mx500.cvs', 'w', 50000000) #50MB write buffer
for i in range(1000000): #num rows
    for i2 in range(500): #entries per row
        f.write(str(randint(0,1000000))) #Return a random integer N such that a <= N <= b.
        if(i2 != 499): #entries per row - 1
            f.write(",")
    f.write("\n")
    if(i != 0 and i % 100000 == 0):
        print(str(i) + " lines written")
f.close

然而,我注意到一个CPU内核使用100%负载,创建数据的时间比磁盘速度允许的时间要长得多。 对于创建大型数据集(100+GB),有没有一种简单的方法可以加快速度?也许是更快的随机库?你知道吗


Tags: 数据in脚本forif时间rangerandom
1条回答
网友
1楼 · 发布于 2024-04-20 06:42:32

纯Python是一个困难的问题,但幸运的是,有一些高效的Python库可以帮助加快速度。numpy是一个很好的例子:

import numpy
import numpy.random

f = open('2014-07-17-1M_testdata_1Mx500.csv', 'w', 50000000)

for i in range(1000):
    m = numpy.random.random_integers(0, 1000000, (1000, 500))
    numpy.savetxt(f, m, delimiter=',')

f.close()

在我的MacBook Pro上运行,代码肯定是通过写入磁盘而不是CPU来绑定的, 所以这似乎起到了作用。你知道吗

相关问题 更多 >