python性能(2):multiprocessing多参数调用
承接上节python性能(1):multiprocessing多进程,使用多进程经常会遇到多个参数的问题,此时硬要使用pool.map()略显麻烦,可以使用Pool.starmap或Pool.map_async,后者和apply_async区别于map和starmap,后续单独小结
starmap用法
用法与之前类似,只不过提供了一个更加方便的参数打包和完成自动解析的步骤
1 | from multiprocessing.pool import Pool |
这样实际上就会多进程执行:
1 | myfunction(outpaths[0],X[0],Y[0],Z[0]) |
pandas多行并行
如果能够直接构造一个函数使用pandas apply函数即可,有时候pandas的多行提取得到一些结果,不方便直接apply,可以==将表拆分成多个表完成并行操作==,记录一下刚刚完成的实例:
1 | def main(tids, track_ids, user_ids, cities): |