V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
py2cn
V2EX  ›  Python

用 Python 写开源的 MATLAB 技术方面有没有问题?

  •  
  •   py2cn · 2020-10-14 21:28:06 +08:00 · 4992 次点击
    这是一个创建于 1508 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各位大佬好,我发起了一个类似 MATLAB 的开源项目,名字叫 PyMiner,是用 python 写的,目前已开源 2 个多月,最近收到了很多讨论,其中有一些是技术方面的质疑。

    因此想向各位大佬请教下,我是用 python+pyqt5 做界面,numpy 做数据处理的基础,在外部开源包的基础上搭建自有的函数库,采用插件商店的形式完成高性能场景(设想的是 python 调用 c c++开发的插件),技术方案是否有问题?

    希望各位大佬不吝赐教,谢谢!

    40 条回复    2020-10-20 15:41:33 +08:00
    rim99
        1
    rim99  
       2020-10-14 22:04:02 +08:00
    支持楼主。建议前后端的模块界限要清晰些,以后迭代的版本多了,有可能会用 js 写前端。
    learningman
        2
    learningman  
       2020-10-15 01:25:58 +08:00   ❤️ 5
    如果这个你还要问人,我觉得你写不出 Matlab 。。。
    black11black
        3
    black11black  
       2020-10-15 01:50:40 +08:00   ❤️ 1
    问个小白问题,python 做的 matlab 是什么意思,只是在 numpy 的基础上加 GUI 而已吗,还是把 matlab 语法解释器也加进去
    Perry
        4
    Perry  
       2020-10-15 07:17:18 +08:00 via iPhone
    这名字我以为是挖矿的 pyminer
    LokiSharp
        5
    LokiSharp  
       2020-10-15 07:53:19 +08:00 via iPhone
    编辑器不要用 PyQt,直接用 Qt,PyQt 做个简单 GUI 没问题,拿来做编辑器级别的复杂 GUI 性能差异明显。
    py2cn
        6
    py2cn  
    OP
       2020-10-15 08:12:43 +08:00 via Android
    @black11black 主要还是 numpy 加 GUI,会移植 matlab 函数,语法解析没做过,想做但是不会弄
    py2cn
        7
    py2cn  
    OP
       2020-10-15 08:13:51 +08:00 via Android
    @learningman 是一群人一起写,我尽量避免把大家带偏
    py2cn
        8
    py2cn  
    OP
       2020-10-15 08:14:28 +08:00 via Android
    @rim99 嗯嗯,谢谢支持,你的建议很好,已收下
    py2cn
        9
    py2cn  
    OP
       2020-10-15 08:15:09 +08:00 via Android
    @Perry 准备改名字叫 MatOpen 你觉得怎么样?
    py2cn
        10
    py2cn  
    OP
       2020-10-15 08:16:14 +08:00 via Android
    @LokiSharp C++找不到大佬参与啊,可能都太忙了,python 会的人多
    12tall
        11
    12tall  
       2020-10-15 08:30:24 +08:00
    资瓷资瓷,另外 http://www.py2cn.com/ 访问不了了似乎
    crella
        12
    crella  
       2020-10-15 08:35:20 +08:00 via Android   ❤️ 1
    楼主有没有参考过 octave ?
    shoujiaxin
        13
    shoujiaxin  
       2020-10-15 08:43:09 +08:00 via iPhone   ❤️ 4
    且不说 Python 和 Matlab 在计算方面的性能差距,兼容 90% Matlab 语法的 Octave 都没敢说自己是开源的 Matlab,numpy+GUI 跟 Matlab 又有什么关系?
    threebr
        14
    threebr  
       2020-10-15 08:48:48 +08:00   ❤️ 1
    同楼上, 楼主可以试试 10k*10k 的矩阵运算, 在我电脑上 matlab 6 秒, numpy 9 秒, 就算不考虑性能, matlab 的各种内置函数和工具包真的抄都抄不完
    Leigg
        15
    Leigg  
       2020-10-15 08:52:36 +08:00 via Android
    你晓得人家用了多少人才和时间写出来的不
    mathzhaoliang
        16
    mathzhaoliang  
       2020-10-15 08:56:35 +08:00
    你的软件和直接写 Python,或者是写一个 Python 模块有什么区别吗?(只是带一个 ide 不算)
    py2cn
        17
    py2cn  
    OP
       2020-10-15 09:23:33 +08:00
    @crella 拉了一个 c++群,群里有大佬在研究 octave 了, 但是进度比较慢,他也是上班族
    php01
        18
    php01  
       2020-10-15 09:54:14 +08:00   ❤️ 6
    这个站的所有人加起来,每人每天为此项目工作 8 小时,持续 20 年,也做不出来 Matlab
    laike9m
        19
    laike9m  
       2020-10-15 10:01:02 +08:00
    怎么还在想 Matlab,定位成一个基础的数据处理工具不行么?还是你对 Matlab 有哪些功能根本没数?
    shangyu7
        20
    shangyu7  
       2020-10-15 12:29:28 +08:00 via Android   ❤️ 1
    lz 搬砖搭了个棚子,就想着要做世界第一高楼了
    yuelang85
        21
    yuelang85  
       2020-10-15 16:55:54 +08:00   ❤️ 1
    本来点进来想说,国内有一个项目就是这么做的。进来一看项目名字,这不就是你吗。

    哈哈哈哈哈哈,精神上支持你,这方面实在是不懂
    ixinshang
        22
    ixinshang  
       2020-10-15 17:30:01 +08:00
    万事开头难,支持一下。
    laqow
        23
    laqow  
       2020-10-15 17:56:16 +08:00 via Android
    感觉 R 和 octave 等都可以替代 matlab,另外 matlab 在很多简单计算的场合性能还没有 python 好。能开源实现一个 m 代码到 exe 格式的 matlab runtime 就很好了。
    firefox12
        24
    firefox12  
       2020-10-15 18:23:44 +08:00
    如果你对这方面缺乏基本的了解,最好不要做这个。这是整个项目的架构师,带偏就是浪费时间。
    efaun
        25
    efaun  
       2020-10-15 18:45:54 +08:00   ❤️ 1
    @php01 #18 每人每天为此项目工作 8 小时中间还要算上 7.5 小时逛 v 站的时间
    algas
        26
    algas  
       2020-10-15 20:03:19 +08:00
    我觉得 fork octave 是比较好的选择,至少架构不用重新设计,语法解释器也有现成可用的,短期就能看见团队产出。

    和 matlab 比较 octave 缺点一大堆,不说 simulink 几乎没有,单是画图就让人痛苦不已;还有程序效率严重依赖矢量化编程技术,不知道 jit 技术能不能克服一下这一点。所以说,基于 octave 能做的事情还有很多。
    Taojun0714
        27
    Taojun0714  
       2020-10-15 21:50:36 +08:00   ❤️ 1
    @laqow 你对 matlab 的核心 simulink 一无所知
    Tink
        28
    Tink  
       2020-10-15 23:25:15 +08:00 via Android
    大工程啊
    Raven316
        29
    Raven316  
       2020-10-15 23:28:07 +08:00
    @php01 有这么难???
    futou
        30
    futou  
       2020-10-16 00:16:17 +08:00
    @Raven316:matlab 可追溯到 1970 年代末,目前 mathworks 全球有超过 5 千名员工,更恐怖的是每时每刻都有巨量的科研人员 /技术人员贡献自己的第三方代码。(是不是熟悉的味道)

    而且 @py2cn 所做的以及类似项目做的大多是对已有工具的封装,真正困难的是建立需要大量数学知识的函数库,当然这又涉及到是否需要重复造轮子的问题。

    不过:种一棵树最好的时间是十年前,其次就是现在。
    by73
        31
    by73  
       2020-10-16 00:17:30 +08:00
    Matlab 非常庞大,它不仅仅是科学计算,还包括仿真之类的,我觉得你还是应该先界定下范围😂
    thedrwu
        32
    thedrwu  
       2020-10-16 00:25:17 +08:00 via Android
    MATLAB 就是各行各业的 toolbox 和 simulink 。

    如果只是简单地算算矩阵画画图,fortran+gnuplot 更轻巧方便。
    zzj0311
        33
    zzj0311  
       2020-10-16 01:21:53 +08:00 via Android
    几十年堆出来的💩山 你以为换种语言就不用堆几十年了🐴
    liukrystal
        34
    liukrystal  
       2020-10-16 05:08:43 +08:00 via iPhone   ❤️ 1
    中国的程序员喜欢赚快钱,难得有 lz 这样的人肯静下心来搞点事情,但 Matlab 不是你一个人能搞得定了,ls 有位老哥说得好,这个站所有的人写 20 年也搞不定 matlab 。
    pabupa
        35
    pabupa  
       2020-10-16 08:22:41 +08:00 via Android
    matlab 可不仅仅只是计算呀!他还有更细化的科目门类,这些都是要有专业人士参与才行的吧......
    pabupa
        36
    pabupa  
       2020-10-16 08:26:55 +08:00 via Android
    @pabupa 但是就跟求伯君一样,ms office 也很庞杂。说不定您真的可以呢!
    cedoo22
        37
    cedoo22  
       2020-10-16 08:30:01 +08:00 via iPhone
    其它不论,单单数学里的那一堆理论就不是软件工程师能轻易搞定的
    feilaoda
        38
    feilaoda  
       2020-10-16 11:49:10 +08:00
    走自己的路,不用听太多别人怎么说
    tfdetang
        39
    tfdetang  
       2020-10-16 11:50:53 +08:00
    如果是已经会 numpy 与 pandas 的用户,jupyter lab 就已经能覆盖大部分的数据分析+画图场景了; 如果目标用户是作为 matlab 的替代品,那如何让 matlab 使用者快速过渡过来是个关键问题
    ligong
        40
    ligong  
       2020-10-20 15:41:33 +08:00
    个人建议,matlab 这个东西,最重要的是工业界的使用和支持,所以,相比起一个软件,更接近一门语言的生态环境和状态。
    可以成立一个开源组织,建立某种协议,争取各行各业的人能有个传递贡献的地方,类似一门语言的无数个库,前端用的 npm 啊,rust 的 crate 啊。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   992 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:22 · PVG 04:22 · LAX 12:22 · JFK 15:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.