[34 楼] nikkor8518
[泡菜]
20-8-11 07:22
我也是疫情封闭开始上手Python,做些数据分析,慢慢熟悉numpy, pandas, matplotlib, scipy。 从分类器开始,挺好玩,买了个显卡。但是感觉用熟还继续需要投入不少时间。 相见恨晚,几年前就应该学这个。 本帖由 SM-N9600 客户端编辑于:2020-08-11 07:26:37
|
[33 楼] 大信
[泡菜]
20-8-11 07:19
johncool 发表于 2020-08-10 11:02我在linux服务器上用过thread,开发并行处理的程序。确实是多核心并行处理的,Python版本大概是2.1。你看看你的版本是什么,个人... 你这个并行应该是多进程,而不是多线程吧? 本帖由IOS客户端发布
|
[32 楼] 闲聊状态
[泡菜]
20-8-11 04:38
benniewang 发表于 2020-08-10 14:09说到这个。
你看linux一个软件有那么多的发行版本,那么多功能类似或者相近的软件。。。大家就不能都联合起来,把所有的力量放在做好... 社区开发 大佬集成 大佬回馈 但是大佬也得吃饭啊……于是很多大佬也就不全回馈…… 而且 大家兴趣都不在一处…… redhat 算是不错的了 但是也不是啥都行 开源的 非公司化组织的,说是整合好后发布的也就是freebsd了 很久没折腾了,不过 我估计到了python这种层面没啥区别……… 而ms全家桶其实才是内部兼容最优秀的 而最近一段时间的web安全扫描 各种开源各种坑 只有大asp屹立不倒…… 而开源实现能坚持的就是大家都嗤之以鼻的jsp... 要是有完整版的.net core pandas 我可能会彻底转向c# 还有就是ms为啥要阉割basic.... 本帖由安卓客户端编辑于:2020-08-11 04:39:42
|
[31 楼] benniewang
[资深泡菜]
20-8-11 03:59
花了一天的时间,把代码改好了。python开发的效率真的挺高,我这种码农里的渣渣都可以快速开发出可用的代码--先不管是不是最优,能用就行,性能不行硬件顶。
|
[30 楼] benniewang
[资深泡菜]
20-8-10 22:49
lzc463 发表于 2020-8-10 22:38  也想学学python,可是没有需求,至多整理一下excel文件。 能把excel功能都用好,也是高手。
|
[29 楼] lzc463
[资深泡菜]
20-8-10 22:38
也想学学python,可是没有需求,至多整理一下excel文件。
|
[28 楼] benniewang
[资深泡菜]
20-8-10 22:09
闲聊状态 发表于 2020-8-10 22:00  python 一堆心怀伟大理想的人做的积木 组装的时候总是有谢不一样的地方…… 说到这个。 你看linux一个软件有那么多的发行版本,那么多功能类似或者相近的软件。。。大家就不能都联合起来,把所有的力量放在做好一个软件上么? 都是你看我不顺眼,我看你不顺眼。
|
[27 楼] 闲聊状态
[泡菜]
20-8-10 22:04
大信 发表于 2020-08-10 13:48按照网上的资料,因为GIL锁的天生机制的限制,python只能是伪线程。即使编写多线程程序,仍然只能使用一个CPU核心进行处理。... 实际上不完全是 因为pandas这种东西实际上是c程序 python只是个出入口而已… 所以 这部分其实不适用gil 而我说的那个有时单线程 有时多线程 确实是操作系统告诉我的 而且执行时间也有区别 为啥?不知道……… 因为 这样的部分 其实都应该努力让他变成numpy pandas或者gpu里的东西或者简单点@jit…… 本帖由安卓客户端编辑于:2020-08-10 22:07:53
|
[26 楼] 闲聊状态
[泡菜]
20-8-10 22:01
benniewang 发表于 2020-08-10 13:54后台搞个sql多好。 我觉得也是……… 哪怕是上内存里的sqlite 本帖由安卓客户端编辑于:2020-08-10 22:13:32
|
[25 楼] 闲聊状态
[泡菜]
20-8-10 22:00
benniewang 发表于 2020-08-10 13:49sklearn天生是单线程的,但是有一些新的功能用了并行代码。具体的,看文档或者直接看代码。... 只看到版本号 没去研究更多的 自己写的部分自然是一样的 还有debian的pandas默认to_html方法 如果dataframe里字比较多就省略掉 一部的 ubuntu conda的就不这样,但是 他们tosql toxls就没事 python 一堆心怀伟大理想的人做的积木 组装的时候总是有谢不一样的地方…… 本帖由安卓客户端发布
|
[24 楼] benniewang
[资深泡菜]
20-8-10 21:59
出来混的迟早是要还的--适用于任何领域任何行业。
写个外汇交易策略回测,虽然用了并行,但还是没有能把cpu的负载长时间压在100%,因为觉得懒得折腾代码了,能出结果就行。 这次想测试一个新的策略,原来的代码框架无法实现了,不过这样一改,虽然内存占用率大大提高,但是能把cpu的负载长时间压在100%了。
|
[23 楼] benniewang
[资深泡菜]
20-8-10 21:54
大信 发表于 2020-8-10 21:45  不行,我必须要用线程而不能用进程。因为200多个线程共享一个二维列表各自访问各自的数据区域(写),由另外一个专门的线程来分析、展示数据(读)。
如果用进程的话,数据共享会是很大的问题。另外,我发现你经常打字的时候线程和进程不分。比如这个pool方法就是进程的,而不是线程。 后台搞个sql多好。
|
[22 楼] benniewang
[资深泡菜]
20-8-10 21:52
大信 发表于 2020-8-10 21:45  不行,我必须要用线程而不能用进程。因为200多个线程共享一个二维列表各自访问各自的数据区域(写),由另外一个专门的线程来分析、展示数据(读)。
如果用进程的话,数据共享会是很大的问题。另外,我发现你经常打字的时候线程和进程不分。比如这个pool方法就是进程的,而不是线程。 进程间也有通信吧。
|
[21 楼] benniewang
[资深泡菜]
20-8-10 21:50
大信 发表于 2020-8-10 21:45  不行,我必须要用线程而不能用进程。因为200多个线程共享一个二维列表各自访问各自的数据区域(写),由另外一个专门的线程来分析、展示数据(读)。
如果用进程的话,数据共享会是很大的问题。另外,我发现你经常打字的时候线程和进程不分。比如这个pool方法就是进程的,而不是线程。 pool的方法在python看来是进程,但对于cpu来说是线程。
|
[20 楼] benniewang
[资深泡菜]
20-8-10 21:50
大信 发表于 2020-8-10 21:48  按照网上的资料,因为GIL锁的天生机制的限制,python只能是伪线程。即使编写多线程程序,仍然只能使用一个CPU核心进行处理。 那你就用进程。
|
[19 楼] benniewang
[资深泡菜]
20-8-10 21:49
闲聊状态 发表于 2020-8-10 21:39  我遇到的是ubuntu debian下的sklearn就是单线程 换用conda装同版本就是多线程…(但也不用ht) 而一个简单的循环加数 就有时候单线程 有时候多线程……
我也不知道为何……… sklearn天生是单线程的,但是有一些新的功能用了并行代码。具体的,看文档或者直接看代码。
|
[18 楼] 大信
[泡菜]
20-8-10 21:48
闲聊状态 发表于 2020-8-10 21:39  我遇到的是ubuntu debian下的sklearn就是单线程 换用conda装同版本就是多线程…(但也不用ht) 而一个简单的循环加数 就有时候单线程 有时候多线程……
我也不知道为何……… 按照网上的资料,因为GIL锁的天生机制的限制,python只能是伪线程。即使编写多线程程序,仍然只能使用一个CPU核心进行处理。
|
[17 楼] 大信
[泡菜]
20-8-10 21:45
benniewang 发表于 2020-8-10 20:38  p = mp.Pool(mp.cpu_count())
我很讨厌并行(其实是操作系统原理没学好)。这样粗放的方式还行。
这句命令能使cpu用到最大的cpu线程数量。比方说3990x是64核128线程,mp.cpu_count() = 128,无论是在win和linux下都是一样的结果。
cpu所谓的thread和python里的thread其实不是一回事情--理论上不太懂,这是实证的结果。 不行,我必须要用线程而不能用进程。因为200多个线程共享一个二维列表各自访问各自的数据区域(写),由另外一个专门的线程来分析、展示数据(读)。 如果用进程的话,数据共享会是很大的问题。另外,我发现你经常打字的时候线程和进程不分。比如这个pool方法就是进程的,而不是线程。
|
[16 楼] 闲聊状态
[泡菜]
20-8-10 21:39
大信 发表于 2020-08-10 09:37看来你研究得比较深入,能不能帮我解决一个多线程的性能问题? 从网上文档得知,python采用GIL机制实际上是不支持CPU的多核、... 我遇到的是ubuntu debian下的sklearn就是单线程 换用conda装同版本就是多线程…(但也不用ht) 而一个简单的循环加数 就有时候单线程 有时候多线程…… 我也不知道为何……… 本帖由安卓客户端发布
|
[15 楼] 闲聊状态
[泡菜]
20-8-10 21:37
benniewang 发表于 2020-08-10 12:19pandas有个cuda版本的,叫cudf,更香了 确实 pandas这东西还是python上的最pandas java下那个是个初步模拟 .net core下的那个根本就是烂尾工程了…… 本帖由安卓客户端发布
|
[14 楼] benniewang
[资深泡菜]
20-8-10 20:38
大信 发表于 2020-8-10 17:37  看来你研究得比较深入,能不能帮我解决一个多线程的性能问题? 从网上文档得知,python采用GIL机制实际上是不支持CPU的多核、多线程。虽然python有thread模块实现多线程,但它实际上是假的多线程,不能利用CPU多核的资源。我开始对这个说法深信不疑,但后来我的程序分别在Win7和Win10平台上运行的巨大差异,让我困惑了。
我的程序运行并发了220个左右的多线程,主要负责ping采集数据。在Window 7上运行比较流畅,但是在Windows 10就时常出现卡顿。Windows 7是6年前的旧电脑,i3处理器,3.5GHz,4核,18GB内存。Windows 10是较新的电脑,i7-9700,3GHz,8核心,18GB内存。
通过Windows系统的任务管理器看,程序在Windows 10上运行的时候,只有1个核心负荷非常高,其余7个核资源占用在30%以下。印证了python不支持多核的说法。
而在Windows 7中运行程序,通过任务管理器查看4个核心都在高速运行(见下图)。感觉python也似乎也能利用多核实现真正的多线程? 跟网上的普遍说法矛盾,这究竟是怎么回事?
... p = mp.Pool(mp.cpu_count()) 我很讨厌并行(其实是操作系统原理没学好)。这样粗放的方式还行。  这句命令能使cpu用到最大的cpu线程数量。比方说3990x是64核128线程,mp.cpu_count() = 128,无论是在win和linux下都是一样的结果。 cpu所谓的thread和python里的thread其实不是一回事情--理论上不太懂,这是实证的结果。
|
[13 楼] benniewang
[资深泡菜]
20-8-10 20:19
闲聊状态 发表于 2020-8-10 17:09  最近我在试几条邪路
关键是pandas 啊 没有了pandas python都不香了。。。。。 pandas有个cuda版本的,叫cudf,更香了
|
[12 楼] arondes
[陈年泡菜]
20-8-10 20:00
大信 发表于 2020-8-10 17:37  看来你研究得比较深入,能不能帮我解决一个多线程的性能问题? 从网上文档得知,python采用GIL机制实际上是不支持CPU的多核、多线程。虽然python有thread模块实现多线程,但它实际上是假的多线程,不能利用CPU多核的资源。我开始对这个说法深信不疑,但后来我的程序分别在Win7和Win10平台上运行的巨大差异,让我困惑了。
我的程序运行并发了220个左右的多线程,主要负责ping采集数据。在Window 7上运行比较流畅,但是在Windows 10就时常出现卡顿。Windows 7是6年前的旧电脑,i3处理器,3.5GHz,4核,18GB内存。Windows 10是较新的电脑,i7-9700,3GHz,8核心,18GB内存。
通过Windows系统的任务管理器看,程序在Windows 10上运行的时候,只有1个核心负荷非常高,其余7个核资源占用在30%以下。印证了python不支持多核的说法。
而在Windows 7中运行程序,通过任务管理器查看4个核心都在高速运行(见下图)。感觉python也似乎也能利用多核实现真正的多线程? 跟网上的普遍说法矛盾,这究竟是怎么回事?
... 用multiprocessing,基于多进程的并行
|
[11 楼] johncool
[资深泡菜]
20-8-10 19:02
我在linux服务器上用过thread,开发并行处理的程序。确实是多核心并行处理的,Python版本大概是2.1。你看看你的版本是什么,个人怀疑是版本造成的,或者是win10本身的支持不好 本帖由安卓客户端发布
|
[10 楼] nahcooo
[资深泡菜]
20-8-10 18:25
lcchen 发表于 2020-8-10 12:59  这个的确快速,不过中文支持还是有些想不到的异常 锟斤拷锟斤拷锟斤拷?
|
[9 楼] 大信
[泡菜]
20-8-10 17:37
闲聊状态 发表于 2020-8-10 17:09  最近我在试几条邪路
1.jython 这个有宇宙无敌jvm加持,结果速度比cpython还慢。。。。 2。iornpython 这个有超级无敌.net core 加持,速度是上去了,可怎么也没法pip 实在不爽
这俩东西 我运行的最流畅的就是 --- py-kms 这俩倒是都行.... pypy.....
而且这些邪路还都是2.7兼容。。。(pypy例外)
关键是pandas 啊 没有了pandas python都不香了。。。。。 看来你研究得比较深入,能不能帮我解决一个多线程的性能问题? 从网上文档得知,python采用GIL机制实际上是不支持CPU的多核、多线程。虽然python有thread模块实现多线程,但它实际上是假的多线程,不能利用CPU多核的资源。我开始对这个说法深信不疑,但后来我的程序分别在Win7和Win10平台上运行的巨大差异,让我困惑了。 我的程序运行并发了220个左右的多线程,主要负责ping采集数据。在Window 7上运行比较流畅,但是在Windows 10就时常出现卡顿。Windows 7是6年前的旧电脑,i3处理器,3.5GHz,4核,18GB内存。Windows 10是较新的电脑,i7-9700,3GHz,8核心,18GB内存。 通过Windows系统的任务管理器看,程序在Windows 10上运行的时候,只有1个核心负荷非常高,其余7个核资源占用在30%以下。印证了python不支持多核的说法。 而在Windows 7中运行程序,通过任务管理器查看4个核心都在高速运行(见下图)。感觉python也似乎也能利用多核实现真正的多线程? 跟网上的普遍说法矛盾,这究竟是怎么回事?
|
[8 楼] 闲聊状态
[泡菜]
20-8-10 17:09
最近我在试几条邪路
1.jython 这个有宇宙无敌jvm加持,结果速度比cpython还慢。。。。 2。iornpython 这个有超级无敌.net core 加持,速度是上去了,可怎么也没法pip 实在不爽
这俩东西 我运行的最流畅的就是 --- py-kms 这俩倒是都行.... pypy.....
而且这些邪路还都是2.7兼容。。。(pypy例外)
关键是pandas 啊 没有了pandas python都不香了。。。。。 本帖最后由 闲聊状态 于 2020-8-10 17:12 编辑
|
[7 楼] 闲聊状态
[泡菜]
20-8-10 17:04
lcchen 发表于 2020-8-10 12:59  这个的确快速,不过中文支持还是有些想不到的异常 1.最好使用linux系统,原因是 字符集 linux 默认 utf-8 2。非要win,那就杜绝在路径等地方遇见中文。。。。 3。好好学习下字符集的绕绕,对于这种松散组织的语言很有必要。大MS的全家桶内部好用也不是没原因的,python没那环境,或者说linux才是python的原生环境。。。
|
[6 楼] 大信
[泡菜]
20-8-10 16:26
lcchen 发表于 2020-8-10 12:59  这个的确快速,不过中文支持还是有些想不到的异常 文字回复说有对论坛的恶意攻击。晕死! 只好贴图啦
|
[5 楼] arondes
[陈年泡菜]
20-8-10 14:46
这个论坛不适合粘贴代码 会说你的内容有危害性 当然就更没有高亮显示的功能了
|