在python中安装NumPy,SciPy,Matplotlib以及scikit-learn(Windows平台)

        本文是针对(像我一样的)python新用户所写的,刚刚在电脑上装好python之后,所需的一些常见/常用的python第三方库/软件包的快速安装指引。包括了这些常用安装包的简介,安装方法,下载链接,和使用说明等。有点类似于,你刚刚在电脑上装好了windows系统以后,一些常用装机软件的相关说明。大家安装的时候最好按照我文章中的安装顺序去装,因为有些后面的库都依赖于前者。

1, NumPy

        NumPy是Python的一个最常用最基本的扩展程序库之一,主要用于矩阵运算或数组计算。很多其他的python库都要依赖于NumPy才能跑。

NumPy的发展史:

Matrix-sig

        1995年,特殊兴趣小组(Special Interest Group,SIG)Matrix-sig成立,其目的是设计一个数组计算包。Matrix-sig的成员中有Python的发明人吉多 范罗苏姆(Guido van Rossum),他扩展了Python的语法(特别是索引语法),使数组计算更容易。

Numeric

        矩阵计算包由Jim Fulton实现,并由Jim Hugunin推广,被称为Numeric (也称Numerical Python extensions或 NumPy)。现已弃用。其中,Jim Hugunin 是麻省理工学院 (MIT) 的研究生,[8]: 10  于 1997 年加入国家研究计划公司 (CNRI),从事 JPython 工作。

Numarray

        Numarray是作为Numeric的替代品被开发出来的,与 Numeric 一样,它现在也已被弃用。Numarray 对于大型数组的操作速度更快,但在小型数组上的操作速度比 Numeric 慢,因此有一段时间这两个包被并行使用于不同情况。Numeric的最后一个版本(v24.2)于2005年11月11日发布;Numarray的最后一个版本(v1.5.2)于2006年8月24日发布。

曾经有人希望将Numeric纳入Python标准库,但吉多·范罗苏姆认为,在当时的情况下,代码难以维护。

NumPy

2005年初,NumPy的开发者Travis Oliphant希望社区的不同数组包可以统一。他将Numarray的功能移植到Numeric上,并于2006将结果作为NumPy 1.0发布。这个新项目是SciPy的一部分。为了避免在只需数组计算的情况下安装庞大的SciPy包,新包以NumPy的名义被分离出来。2011年,NumPy的1.5.0版本加入了对Python 3的支持。由此看来,NumPy确实是更专注于矩阵运算。

安装NumPy:

安装官网的说明如法炮制,复制粘贴:

pip install numpy

大概了你会发现,速度非常慢。。。甚至出现time out的错误。 

 然后,我查询了一下“资料”,选择了第一种用法,成功,而且下载速度非常快。

复制粘贴,over: 

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy

NumPy使用手册:

NumPy user guide — NumPy v1.26 Manualicon-default.png?t=N7T8https://numpy.org/doc/stable/user/index.html#user


By the way,顺便说一句,因为安装这个东西,我还顺带发现了一个宝藏网站:
https://mirrors.tuna.tsinghua.edu.cn/

 这个里面什么东西都有,得。。。。。

后面我们安装其他python工具包/扩展库得时候,还得用到这个镜像。


2, SciPy

        SciPy是一个需要依赖于NumPy的较为全面和完整的Python科学计算库(毕竟他依赖于Numeric的前身Numeric)。SciPy包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。

SciPy的发展史:

        在1990年代,Python引入了用于数值计算的阵列类型Numeric(这个包最终被Travis Oliphant编写的NumPy取代);此后,随着被用于不同科学领域的扩展模块的数量越来越多,人们对一个能够囊括尽可能多的一站式科学技术库的渴求也愈发强烈。2001年,Travis Oliphant、Eric Jones和Pearu Peterson合并了他们编写的代码,并将这个合并后的包命名为SciPy。

安装SciPy: 

        和NumPy的安装一样,根据官方的说明,可以直接在Python中输入如下命令,系统就会自行下载并安装。

 输入如下命令进行安装,结果碰到了和安装NumPy一样的问题,下载速度非常慢:

python -m pip install scipy

如法炮制的使用清华大学的镜像: 

python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scipy

SciPy使用手册:

 SciPy documentation — SciPy v1.13.0 Manualicon-default.png?t=N7T8https://docs.scipy.org/doc/scipy/


3, Matplotlib

        根据wiki里面的这句长难句英语,matplotlib是一个plotting library,即,绘图的。且这个绘图的库是面向Python和依赖于NumPy的。

        这是官网中的自我介绍,看得出来visualization正是Matplot的重点,也就是可视化,用大白话说就是画图。

例如:

安装Matplotlib:

pip install matplotlib

 如果下载网速慢,推荐使用清华代理链接:

python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib

        感觉很多基于python的三方库都可以通过这种方式下载,只要把后面的"matplotlib"换成你需要下载的软件即可。

Matplotlib使用手册:

Tutorials — Matplotlib 3.8.3 documentationicon-default.png?t=N7T8https://matplotlib.org/3.8.3/tutorials/index.html

Using Matplotlib — Matplotlib 3.8.3 documentationicon-default.png?t=N7T8https://matplotlib.org/3.8.3/users/index.html


 4, scikit-learn

        

        如果你是准备用python来做机器学习的,那这个库你肯定要用到。Scikit-learn(他的前身是scikits.learn,也叫sklearn)是基于Python的免费开源机器学习库。它包含了各种分类、回归和聚类算法,包括多层感知器、支持向量机、随机森林、梯度提升、k-平均聚类和DBSCAN,它依赖于Python的数值库NumPy,科学库SciPy和可视化库Matplotlib

Scikit-learn的发展史:


        scikit-learn计划开始于scikits.learn,它是David Cournapeau的Google编程之夏计划。它的名字来源于成为“SciKit”(SciPy工具箱)的想法,即一个独立开发和发行的第三方SciPy扩展包。最初的代码库被其他开发者重写了。在2010年,来自法国罗康库尔的法国国家信息与自动化研究所的Fabian Pedregosa、Gael Varoquaux、Alexandre Gramfort和Vincent Michel,领导了这个项目并在2010年2月1日进行了首次公开发行。在各种scikit中,scikit-learn和scikit-image截至2012年11月是“良好维护和流行的”。Scikit-learn是在GitHub上最流行的机器学习库之一。

安装Scikit-learn

pip install -U scikit-learn

我这边用官方的下载链接效果/速度还可以: 

实在不行的话,依然可以选择清华的镜像:

python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scikit-learn

我这边因为之前已经安装好了,所以只是试了一下上面的这个安装命令。 

scikit-learn的使用手册:

User guide: contents — scikit-learn 1.4.2 documentationUser Guide: Supervised learning- Linear Models- Ordinary Least Squares, Ridge regression and classification, Lasso, Multi-task Lasso, Elastic-Net, Multi-task Elastic-Net, Least Angle Regression, LA...icon-default.png?t=N7T8https://scikit-learn.org/stable/user_guide.html


 写在最后:

        虽然我在文中给出了各大软件包的说明文档的链接,但我觉得对于新手,如果可以的话,最便捷的使用方式应该首选chatGPT,你给他说人话就行。。。比如说下面的用法:

再比如:

还有: 

        尽管如此,很多时候也需要去相应数据库的官网查一下具体的使用说明,但chatGPT ALWAYS是最优解,是首选,是新手菜鸟的良师益友!


  (全文完)

作者 --- 松下J27 

分享一个小故事:

        前两天刷B站的时候,看到斯坦福大学的教授李飞飞分享的一个趣事。她说有一天学校里的招生办突然给她打来电话,请教她一个问题,大意是说招生办的人发现有些学生在申请大学的过程中会用到chatGPT,比如说,让chatGPT帮忙写申请材料等。招生办应该的人应该怎么看待这种现象?

        后面李飞飞回家问了她11岁的孩子这个问题,她的孩子想了一天,第二天早上回答她妈妈说:“他认为斯坦福应该优先录取前200名最会使用chatGPT的学生。”

        她的意思是,在她看来,他的孩子是出于把chatGPT当成一个普通的工具去考虑的。而她也认为,人们理应把它当成一个工具去看。

参考文献(鸣谢):

1,https://en.wikipedia.org/wiki/Guido_van_Rossum

2,https://zh.wikipedia.org/wiki/NumPy 

3,https://zh.wikipedia.org/wiki/Matplotlib

4,https://zh.wikipedia.org/wiki/SciPy

5,NumPy user guide — NumPy v1.26 Manual

6,SciPy -

7,Matplotlib — Visualization with Python

8,scikit-learn: machine learning in Python — scikit-learn 1.4.2 documentation

9,https://zh.wikipedia.org/wiki/Scikit-learn

本文于2024年4月23日更新了部分内容。

(配图与本文无关)

版权声明:文中的部分图片,文字或者其他素材,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐