MATLAB 和 Mathematica、Maple 并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB 可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等。
前一段时间 MATLAB 进入实体清单实践,也让部分国内开发者有了危机意识,今天介绍的这款项目就是试图打造「开源界的 MATLAB」,目前项目刚刚起步,还需要更多热爱开源或 MATLAB\PyQt\Python 的技术大牛加入。
项目名称:PyMiner
项目作者:py2cn
开源许可协议:GPL-3.0
项目地址:https://gitee.com/py2cn/pyminer
项目简介
PyMiner 是一款数据处理、数据分析、数据建模、数据评估、数据可视化的工具,基本目的是使pandas、sklearn的操作进行可视化,用更加易于操作的形式完成数据科学家相关工作。
项目开发环境基于Window 10 x64,使用 Python3.8+PyQt5.15+Pycharm 进行技术开发。
项目预览
项目说明:
为什么要做这个项目?目的是什么?
2020年6月6日开始,哈工大等中国高校被禁用MATLAB。在此之前我们发现在工业软件、行业软件除了MATLAB以外,还有SAS、SPSS、FICO、Adobe等都是我们高度依赖且无法替代的行业软件。 为此,这个项目的根本目标就是实现MATLAB替代,短期内至少是实现在某一方面的替代,并逐步实现超越MATLAB,并以抛转引玉的形式,让更多人加入到国产替代的行列中!PyMiner坚持对标国际一流,实现面向未来的设计,以自主创新为战略基石,积极吸收凝聚国内外各种优势资源和创新要素,致力于突破掌握一批数据算法模型以及仿真领域研制关键技术!
为什么是用python开发,为什么不选C++ C# java或者其他?
在选定python之前,我们考虑过包括c++、c#、java、eletron等多种开发方案去实现国产的MATLAB,甚至我们在曾经使用c#开发过一段时间后又重新启用python来完成这项工作。 python有丰富而成熟的外部扩展,开发者数量众多,且代码结构清晰,开发效率高等优点,为了尽快实现国产开源的matlab,能够进行实际使用,并在之后吸引广大的开发者、算法工程师、数据科学家参与进来,我们选择使用python,并且我们将支持c++等语言进行扩展提高产品性能。 需要说明的是,我们团队中也有很多C++大牛,也有C++项目小分队,如果你在C++领域并希望参与到项目中来并贡献自己的一份力量,我们殷切欢迎!
有没有高校或者机构跟你们合作?
我们很希望能够跟高校或机构进行合作,但是目前为止,除了开发组QQ群中以个人身份参与的学生或者老师,暂时没有任何高校或机构与本项目进行合作。
你们有没有考虑过做仿真或Simulink?
项目从最初构想时就已经规划开发仿真系统,但是限于开发组人员有限,目前虽已成立仿真开发小组,但目前进度非常有限,希望更多有志之士能够加入!
你们的方向是怎么样的?
我们方向是先做通用型的类MATLAB工具,比如我们会优先实现MATLAB中使用频率最高的功能,在通用模块(数据处理、数据分析、数据可视化等)基础上,逐步添加有行业针对性的功能模块。
目标用户群体是怎样的?
我们的目标群体是MATLAB的浅度用户和python数据科学家相关用户,例如数据相关行业的基本用户(医疗分析、金融、制造等行业的数据分析师、数据科学家等),在此基础上,我们希望不断添加行业特有的功能模块实现逐个行业方向的实现并替代MATLAB。
目标使用场景是怎样的?
在产品开发初期,我们设想的使用场景是行业通用的数据处理和数据分析,例如公司内部用户数据的处理分析、金融行业的用户风险分析、医疗行业的数据分析等基本数据科学相关场景。
为什么叫PyMiner?
目前为止这已经是该项目的第5个名字,从之前的PythonEnv、PandaStudio、PyStudio、Patata到现在的PyMiner。总体上可以看出是基于Python以及是平台化跟挖掘数据价值相关的项目。PyMiner的意思我自己解释为一个将Python作为工具的淘金者。
项目的中文名叫什么?
PyMiner项目的中文名暂定为泊宇(po yu)项目,即根据PyMiner首字母做的拼音化转义,另外,也有像宇宙开船,向更广阔的天地前进的意思,而且也有“迫于***”的含义,表达了作者希望牢记使命,不断进取的理念!
项目计划
目前我们已经做了哪些内容?
目前我们已经确定了整体的架构形式python+pyqt,完成了界面重构(例如ribbon菜单,dockwidget控件改造),编辑器、控制台、插件管理器、工作空间等核心内容的开发建设。
下一步的工作计划是什么?
下一步我们将首先继续完成并优化插件管理器的窗口化设计,进一步优化workspace工作区间的可视化设计与实现。 此外:
在下一个里程碑计划中,预计我们将实现核心功能插件的demo,例如数据处理,数据分析。
我们将和更多算法工程师一起基于numpy构建我们的基础算法库。
我们将基于gitbook建立社区文档管理系统,让开发者、算法工程师、数据科学家一起丰富产品文档内容。
我们将基于官网py2cn.com,建立插件商店,让用户能够上传插件,查询插件。
里程碑计划
· V1 里程碑是2020.09.30,核心组件全部构建完成,UI框架确定,两个插件demo(数据分析,数据处理)
· V1.1里程碑是2020.10.30,完善核心功能,数据处理完成常见场景插件,数据分析完成至少2个demo(描述统计+t检验或其他)插件,数据可视化相关功能完成至少两个demo(2D,3D),算法模型插件完成至少一个demo
· V1.2里程碑是2020.11.30,完善核心功能,数据分析完成常见场景插件,数据可视化相关功能完成全部常见场景,算法模型插件完成常见场景
· V1.3里程碑是2020.12.30,完善核心功能,补充完成数据处理、数据分析、数据可视化、数据建模、模型评估常见场景
· V2 里程碑是2021.01.30,基本功能实现,接口文档齐全,可以支持跨行业插件开发
开发者说
PyMiner 的落地,离不开广大的算法工程师的群智,而目前国内搞算法这一块的,基本上Python 语言是主流的,C++ 速度确实是快,当然我本身就是搞 C++ 的,但是它入门门槛略高,开发效率慢,而且更重要的一点是,如果代码质量良莠不齐,速度其实也很一般。现在PyMiner 刚刚起步,缺技术人才的支持,更缺做事的人,在这种情况下,我们只能给各个行业的精英,起到搭建起我们的平台,给牛人发挥的舞台的作用,因此,能起到最便捷的桥梁作用的,就是 Python 了。当然,后期是否用 C++ 重构,则要看多方面因素了。我们 PyMiner 团队希望就 PyMiner 抛个砖,能吸引更多技术人才和做事的人共同实现国产开源 MATLAB 的目标。
如何参与项目?
前言
为了更便于推进项目,需要了解各位擅长的工作内容,请各位群友修改自己的备注为:方向+昵称,例如pyqt_tom_coffce
加入小组
目前开发组已经有pyqt、算法、仿真、插件、网站、c++、项目管理多个小分队,有意向在任意领域进行参与贡献的小伙伴请直接加入小分队QQ群!
· PyMiner开发者QQ总群:945391275
· pyqt小分队:907932713
· 算法小分队:605160230
· 仿真小分队:915736652
· 插件小分队:689417488
· C++小分队:205591506
· 网站小分队:1131420577
· 项目管理小分队:827058366
参与贡献
要真正的参与项目,除了需要了解自身特长之外,还需要了解这个项目的基本情况。在Wiki的“ 项目说明 ”我们有对项目的背景做一些介绍,在“ 项目计划 ”中我们对当前我们正在做的事情以及下一步的项目计划做了概要性描述。
如果你是偏产品经理和需求分析师方面的,想要为项目做些贡献,我们希望你能对matlab多一些认识,毕竟我们的目标是进行matlab替代。在此基础上,希望你能帮助我们进行需求分解,将matlab的功能模块按照重要性、优先级进行细化分解,以便我们能够更专注于细节进行实现。
如果你是偏qt pyqt python 方向的,想要在PyMiner的界面UI或功能方面进行参与,我们也很希望你能真正的参与到项目的代码贡献当中。在这之前你可能还需要了解我们的代码结构(在wiki的“ 开发者指南 ”中我们会有相应介绍),编码规范(在wiki的“ 编程规范 ”中)。
如果你是仿真方向或对Sumlink有所研究,除了项目基础信息之外,你还需要了解项目的插件系统,目前在PyMiner中,更多功能将以插件的形式进行提供。而插件我们支持使用Python或c++等多种方式进行开发。
如果你是算法工程师,你将是这个项目的非常重要参与者,甚至可以说,我们的未来非常依赖你们的参与,而在PyMiner中,算法工程师的贡献,也将主要通过插件的形式进行完成,为此我们需要算法工程师和其他开发者齐心协力进行合作, 由算法进行后台计算并设计输入参数和输出形式,而pyqt开发者进行插件化改造实现 ,最终将算法以插件的形式对外提供。
做开源界的MATLAB,PyMiner 需要更多热爱开源的你加入的更多相关文章
-
[转帖]Docker公司被收购,开源界尴尬不?
Docker公司被收购,开源界尴尬不? https://news.51cto.com/art/201911/606189.htm Docker公司被谁收了? Docker公司被谁收了?Mirantis ...
-
云栖PPT下载 | 开源界大咖集体现身,开源数据库专场重点再回眸!
阿里云开源数据库项目最新发布 阿里巴巴集团副总裁.阿里云智能数据库事业部总裁.高级研究员李飞飞(飞刀).阿里云数据库资深技术专家楼方鑫(黄忠)以及阿里云数据库技术专家傅宇(齐木)三位阿里云技术专家为大 ...
-
28款GitHub最流行的开源机器学习项目,推荐GitHub上10 个开源深度学习框架
20 个顶尖的 Python 机器学习开源项目 机器学习 2015-06-08 22:44:30 发布 您的评价: 0.0 收藏 1收藏 我们在Github上的贡献者和提交者之中检查了用Python语 ...
-
这些.NET开源项目你知道吗?.NET平台开源文档与报表处理组件集合(三)
在前2篇文章这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧 和这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,大伙热情高涨.再次拿出自己的私货,在.NET平台 ...
-
这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧
注意:有网友提出部分项目停止更新的事情,这个问题我特意注意过,很多都是小功能组件,功能稳定,没有bug,没更新是正常的.够用就行了.其次技术支持的事情,对开源免费来说,不能太强求,这里发布的都是小功能 ...
-
2017云计算开源峰会 你是想听Linux谈开源还是想听OpenStack谈开源?
2017年,善于把握机遇的企业们不是正在开源,就是走在去开源的路上-- 开源是不是就意味着免费? 开源企业就是要当"活雷锋"? 开源项目究竟如何运作?如何参与开源社区? 如何获得最 ...
-
致敬学长!J20航模遥控器开源项目计划【开局篇】 | 先做一个开机界面 | MATLAB图像二值化 | Img2Lcd图片取模 | OLED显示图片
我们的开源宗旨:* 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/C ...
-
FreeBSD 乃至开源界中的孔乙己 再论苦难哲学之一
在许多*的FreeBSD 粉丝里,他们甚至不允许别人把FreeBSD写作freebsd,要和你强调,F和BSD都是大写的.还说这是什么尊重之类的东西.大抵和孔乙己的茴香豆的茴的有四种写法一样吧:&q ...
-
.Net MVC&;&;datatables.js&;&;bootstrap做一个界面的CRUD有多简单
我们在项目开发中,做得最多的可能就是CRUD,那么我们如何在ASP.NET MVC中来做CRUD呢?如果说只是单纯实现功能,那自然是再简单不过了,可是我们要考虑如何来做得比较好维护比较好扩展,如何做得 ...
随机推荐
-
浅析Javascript
Javascript是一种脚本语言,从出生就被唾弃,一开始人们使用它只是为了解决诸如页面数据校验之类的问题.它基于prototype的面向对象实现一度被认为很丑很难用,甚至很多身处一线Web开发者都不 ...
-
利用Nginx+Mono+Fastcgi代替IIS对Asp.Net进行反向代理
Nginx的好处相信我不必多说了,它作为一个相当轻量级的开源Web 服务器以及反向代理服务器而深受欢迎.越来越多的公司已经对它产生兴趣,包括我们公司的许多部门,利用它进行负载均衡和资源管理,之前写过一 ...
-
Altium Designer哪里下载和导入元件库_图文教程
http://jingyan.baidu.com/article/46650658064621f549e5f88f.html
-
ios简单数据库运用
一.添加类 二.打开数据库 三.创表 四.插入数据 五.取出数据 一.添加类 1.在设置Linked Frameworks and Libraries 中,点加号并添加libsqlite3.0.dyl ...
- Be Sociable, Share!
-
SKEmitterNode类
继承自 SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObject) 框架 /System/L ...
-
IIC-BUS INTERFACE
I2C总线是由Philips公司开发的一种简单.双向二线制同步串行总线.它只需要两根线即可在连接于总线上的器件之间传送信息. To control multi-master IIC-bus opera ...
-
如何 通过 userAgent 区别微信小程序
微信内置浏览器: 微信小程序: 有micromessenger是微信内置浏览器,有micromessenger和miniprogram的是微信小程序. (ios不适用) if(navigator.u ...
-
python2,python3同时安装时,python3可以安装并升级pip库,python2报错的解决办法
最近在使用pip安装包的的时候出现下面错误 UnicodeEncodeError: 'ascii' codec can't encode character u'\u258f' 查询资料后发现原因是p ...
-
RN九宫格
九宫格可以用两种方式来做,一种使用SectionList,是我的另外一篇博客,还有一种的纯代码计算,下面是效果图 代码如下: var Dimensions = require('Dimensions' ...