python常用数据科学的模块[0]
python以其丰富的第三方库能够实现远远超于其自身的功能的软件。
以下是常见的数据科学用到的python库。
- Pandas——数据操作
项目地址:https://github.com/pandas-dev/pandas
官网:https://pandas.pydata.org/
Pandas 是 Python 语言的一个扩展程序库,用于数据分析。pandas提供了快速便捷处理结构化数据的大量数据结构和函数,是高性能、易于使用的数据结构和数据分析工具。Pandas 一个强大的分析结构化数据的工具集,基础是 Numpy(提供高性能的矩阵运算)。Pandas 可以从各种文件格式比如 CSV、JSON、SQL、Microsoft Excel 导入数据。Pandas 可以对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗和数据加工特征。Pandas 广泛应用在学术、金融、统计学等各个数据分析领域。
- Plotly——数据绘图
Plotly 是一个非常强大的开源数据可视化框架,它通过构建基于 HTML 的交互式图表来显示信息,可创建各种形式的精美图表。本文所说的 Plotly 指的是 Plotly.js 的 Python 封装,plotly本身是个生态非常复杂的绘图工具,它对很多编程语言提供接口。交互式和美观易用应该是 Plotly 最大的优势,而 Matplotlib 的特点则是可定制化程度高,但语法也相对难学,各有优缺点。
- streamlit——数据显示
Streamlit 是一个基于 Python 的 Web 应用程序框架,致力于以更高效、更灵活的方式可视化数据,并分析结果。Streamlit是一个开源库,可以帮助数据科学家和学者在短时间内开发机器学习 (ML) 可视化仪表板。只需几行代码,我们就可以构建并部署强大的数据应用程序。
streamlit-folium:用于渲染Folium贴图的Streamlit组件
streamlit-option-menu:用于显示web选项的Streamlit组件
- folium——绘制地图
Folium是一个基于leaflet.js的Python地图库,其中,Leaflet是一个非常轻的前端地图可视化库。即可以使用Python语言调用Leaflet的地图可视化能力。它不单单可以在地图上展示数据的分布图,还可以使用Vincent/Vega在地图上加以标记。Folium可以让你用Python强大生态系统来处理数据,然后用Leaflet地图来展示。
- Matplotlib——数据绘图
官网:https://matplotlib.org/
Matplotlib是一个Python 2D绘图库,它以多种硬拷贝格式和跨平台的交互式环境生成出版物质量的图形。 Matplotlib可用于Python脚本,Python和IPython (opens new window)Shell、Jupyter (opens new window)笔记本,Web应用程序服务器和四个图形用户界面工具包。
- SciPy——数学运算
官网:https://scipy.org/
是一个科学的python开源代码,用于执行数学,科学和工程计算,SciPy是一组专门解决科学计算中各种标准问题域的包的集合。SciPy库依赖于NumPy,它提供了便捷且快速的N维数组操作。 SciPy库的构建与NumPy数组一起工作,并提供了许多用户友好和高效的数字实践,例如:数值积分和优化的例程。 它们一起运行在所有流行的操作系统上,安装快速且免费。 NumPy和SciPy易于使用,但强大到足以依靠世界上一些顶尖的科学家和工程师。
- numpy——数值计算
官网:https://numpy.org/
NumPy是一个开源的Python库,主要用在数据分析和科学计算,基本上可以把NumPy看做是Python数据计算的基础,因为很多非常优秀的数据分析和机器学习框架底层使用的都是NumPy。比如:Pandas, SciPy, Matplotlib, scikit-learn, scikit-image 等。
- seaborn——机器学习
官网:https://seaborn.pydata.org/
Seaborn是一种基于matplotlib的图形可视化python libraty。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。应该把Seaborn视为matplotlib的补充,而不是替代物。同时它能高度兼容numpy与pandas数据结构以及scipy与statsmodels等统计模式。掌握seaborn能很大程度帮助我们更高效的观察数据与图表,并且更加深入了解它们。
- SKlearn
scikit-learn,又写作sklearn,是一个开源的基于python语言的机器学习工具包。它通过NumPy, SciPy和Matplotlib等python数值计算的库实现高效的算法应用,并且涵盖了几乎所有主流机器学习算法。
- statsmodels
statsmodels是一个统计分析包,起源于斯坦福大学统计学教授Jonathan Taylor,他设计了多种流行于R语言的回归分析模型。Skipper Seabold和Josef Perktold在2010年正式创建了statsmodels项目,随后汇聚了大量的使用者和贡献者。受到R的公式系统的启发,Nathaniel Smith发展出了Patsy项目,它提供了statsmodels的公式或模型的规范框架。
- IPython和Jupyter
虽然IPython本身没有提供计算和数据分析的工具,它却可以大大提高交互式计算和软件开发的生产率。IPython鼓励“执行-探索”的工作流,区别于其它编程软件的“编辑-编译-运行”的工作流。它还可以方便地访问系统的shell和文件系统。因为大部分的数据分析代码包括探索、试错和重复,IPython可以使工作更快。
- 实现matlab近似替代
numpy+scipy+matplotlib≈matlab
numpy来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多,本身是由C语言开发 matplotlib是Python中最著名的绘图系统 scipy方便、易于使用、专为科学和工程设计的Python工具包
numpy官网:https://numpy.org/
scipy官网:https://www.scipy.org/
matplotlib官网:https://matplotlib.org/
其他有价值的网站:
https://wizardforcel.gitbooks.io/pyda-2e/content/1.html
https://bookdata.readthedocs.io/en/latest/
参考资料:
- https://www.runoob.com/pandas/pandas-tutorial.html
- https://zhuanlan.zhihu.com/p/85557161
- https://blog.csdn.net/zhouchen1998/article/details/108976110
- https://www.matplotlib.org.cn/intro/#%E5%85%B6%E4%BB%96%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%BA%90
- https://www.yiibai.com/scipy/scipy_introduction.html
- https://segmentfault.com/a/1190000039863303
- https://zhuanlan.zhihu.com/p/58358393
- https://wizardforcel.gitbooks.io/pyda-2e/content/1.html
