全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
楼主: 你说的都对

求助Python大佬!

[复制链接]
发表于 2020-5-13 14:42:49 | 显示全部楼层
先得到9千万个随机数到一个列表中?你这样for每次都要生成9kw个
 楼主| 发表于 2020-5-13 14:43:59 | 显示全部楼层
cherbim 发表于 2020-5-13 14:39
日常内存溢出,你电脑好渣啊!!!!!!!!!!!!!!!!!!!!!!!!!!
这玩意写入完大约800M ...

确实挺渣。。。我刚看了一下,我不是8G内存,是16G啊,CPU是2200G,win10系统
发表于 2020-5-13 14:45:20 | 显示全部楼层
1.内存越界了,用这个模块不行的
2. python 中, for 循环执行效率非常差


解决方法:调用
numpy random模块中的choice方法

需要置replace为False,使抽取的元素不能重复:

np.random.choice(90000000, 90000000,replace=false)
发表于 2020-5-13 14:47:18 | 显示全部楼层
你说的都对 发表于 2020-5-13 14:38
你内存大吧,我8G小内存,估计撑不住

加几根内存条
发表于 2020-5-13 14:49:58 | 显示全部楼层
最简单的办法,不是使用生成器,实时生成,实时写入硬盘吗,为什么要全部生成在内存里面了 ?
发表于 2020-5-13 14:53:18 | 显示全部楼层
如果不懂程序,这样的活可以交给Excel干
 楼主| 发表于 2020-5-13 14:56:56 | 显示全部楼层
hostloc_user 发表于 2020-5-13 14:49
最简单的办法,不是使用生成器,实时生成,实时写入硬盘吗,为什么要全部生成在内存里面了 ? ...

我研究下,不太懂
 楼主| 发表于 2020-5-13 14:58:21 | 显示全部楼层
高玩梁 发表于 2020-5-13 14:53
如果不懂程序,这样的活可以交给Excel干

excel处理不了哦,宏的话更不会用
发表于 2020-5-13 15:06:15 | 显示全部楼层
本帖最后由 似毛非毛 于 2020-5-13 15:27 编辑

这样?

  1. import numpy

  2. res = numpy.random.choice(90000000, 90000000,replace=False)

  3. numpy.savetxt("result.txt", res, fmt="%s")
复制代码


就是要点时间。。。文件800多M
发表于 2020-5-13 15:08:52 | 显示全部楼层
切割,再append进去
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-8 08:29 , Processed in 0.064447 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表