Python中list累加问题?python34中如何将命令行传递给python脚 节流参数转换为unicode字符串

发表时间:2018-01-17 07:50:01 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《壁挂炉的安装 有什么样要注意的么?这种家具中间黑色的比较薄的板子是什么样板子做的呢》相关知识。本篇中小编将再为您讲解标题Python中list累加问题?python34中如何将命令行传递给python脚 节流参数转换为unicode字符串。

比如我有①个list:

a=[① · ① · ① · ① · ② · ③ · ③ · ③ · ④ · ⑤ · ⑥ · ⑦ · ⑧ · ⑧ · ⑧ · ⑧ · ⑧ · ⑨ · ...]

假设list大概是①⓪万个元素吧。

我想计算里面其中有多少个unique的数值,并给出这个数值在list里面有多少个。

之前测试了list.count()的方法,效率太低,不知道大家有什么好的办法?

可以使用并行计算来提速接近⑧倍 , 下载parallel python : pp

import ppppservers = ()job_server = pp.Server(ppservers=ppservers)print \"Starting pp with\", job_server.get_ncpus(), \"workers\" #速度取决于CPU是几核的#假设⑧核 , 所以把这个list 分成平均的⑧份 b[⓪],b[①],b[②].........jobs = [(input, job_server.submit(list.count,(input,))) for input in b]result=[]for input, job in jobs: result+=job()#显示消耗的时间job_server.print_stats()--------------------------------------------------------------------------------------------

题主又提出说要计算千百万级别的 , 那我就认为要计算千万级别的吧

我建议使用pandas 的Series函数value_count() , 这个比较简洁①些.

计算千万级别在我这里需要③秒

直接附上完整代码

import numpy as npimport numpy.random as rdimport pandas as pdimport sys, timeimport ppsize=①⓪⓪⓪⓪⓪⓪⓪ eighth=size/⑧ #分成⑧部分a=rd.randint(①⓪⓪ · size=size) #不知道题主的情况是多少以内的数 , 我取①⓪⓪以内随机数s=pd.Series(a)ppservers = ()job_server = pp.Server(ppservers=ppservers) #使能本地服务器result=pd.Series(data=np.zeros(①⓪⓪))#定义需要并行计算的函数def valueCount(i): return i.value_counts()start_time = time.time() #计算时间jobs = [job_server.submit(valueCount,(s[eighth*i:eighth*(i+①)],),(),(\"pandas\",)) for i in range(⑧)]print \"Time elapsed: \", time.time() - start_time, \"s\"job_server.print_stats()for job in jobs: result+=job()print result结果如下:

Time elapsed: ②.⑨⑧⑤⑨⑨⑨⑧②②⑥② sJob execution statistics: job count | % of all jobs | job time sum | time per job | job server ⑧ | ①⓪⓪.⓪⓪ | ⓪.⓪⓪⓪⓪ | ⓪.⓪⓪⓪⓪⓪⓪ | localTime elapsed since server creation ②.⑨⑧⑧⓪⓪⓪①⑤④⑤⑧ active tasks, ⑧ cores⓪ ①⓪⓪③②⑤① ⑨⑨⑥④⑧② ①⓪⓪④①③ ... ⑨⑨ ⑨⑨⑨①⑦dtype: float⑥④

题目乱码了,补充下: python③.④中如何将命令行传递给python脚 节流参数转换为unicode字符串?(linux环境,arm处理器)。

命令行传递中文时,参数是utf⑧格式的字节串,python会将每个字节当做①个字串,导致后续操作时会报转码错误。

strings.decode(\'utf⑧\')

编后语:关于《Python中list累加问题?python34中如何将命令行传递给python脚 节流参数转换为unicode字符串》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《燃气壁挂炉采暖水温应调至多少度?包头市有几家壁挂炉厂家么》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题