python库_Python 基本功: 2. 学会调用库

c3d959e6e4277cf2523f55f281daaf53.png

在完成 基本功教程1 之后:

多多教Python:Python 基本功: 1. Hello world​zhuanlan.zhihu.com
38dfc1573e2001786196b33b0fa45987.png

你已经成功完成了第一个 Python 应用程序,并且运用了三种不同的创作工具。

接下来,我们先来从宏观的角度了解一下 Python 宇宙,让你了解 Python 为什么能够在各种场景展现强悍的实力。

思维殿堂 Mind Palace

如果你看过电视剧<神探夏洛克>, 第四季中,夏洛克运用了一个技能叫: 思维殿堂

4a3c13f8068e9059c37b9a25261f658a.png

简单来说,就是把海量的数据,包括整本的书本,专业知识,实时新闻,朋友圈,全部以时间序列的方式存入脑子里,并且通过某种特殊结构来保持记忆的清晰,可以随时翻阅过去查看资料。

那真的普通人可以做到吗?我说也许可以,但是你不需要这么去做,因为你有 Python 库

Python 库 (Libraries)

Python 库是把一整套代码集合起来,包装成一个你随时可以调用的工具包,来完成某一个或者某一个特定领域的事情。例如当你需要去做一些复杂运算的时候,你可以通过调用库来直接实现,而不是去重复造车。

Never re-invent the wheels
In [1]: import numpy as np
In [2]: np.complex(100, 2)
Out[2]: (100+2j)

这里我从 Anaconda 进入 Jupyter Notebook 里来调用库,但是事实上你可以从任意一个创作软件这么做,这里我通过 Import 来调用一个库叫 Numpy。当你执行这两段代码的时候,有可能 Python 会报错说找不到 numpy, 那是因为你没有安装这个库。库原本是某一批人,或者组织写好的现成代码,他们会发布在网上让你使用 (软件的开源协议), 软件创作工具例如 Anaconda,PyCharm 会帮助你在库的管理选项里安装:

4cbb69bea67fee01344580d0473bd19d.png
Anaconda 库的管理界面,你可以直接搜索库并且下载安装

库自己也会更新,因为库的背后有一个社区或者一个组织不停的更新其功能,当然你也可以自己去贡献代码,例如 Numpy 的库:

NumPy - NumPy​numpy.org

在 Python 中,如果你已经安装了你想要的库,在代码里直接 import 就可以。一般打开一个 Python 的文件,你会发现前几行都是调用库:

import 

这里解释一下,第一个库 datetime 是 Python 自带的时间日期功能库,第二行也是 Python 自带的高级容器库,而第二行的语法 from ... import ... 是指从一个大的高级容器库 collections 里提取 一个小的库 (正确来讲是一个类型,但是之后在讨论数据类型的时候再更改) namedtuple, 这样做的好处是你不需要在一个程序中引入大量的不必要资源,引起资源冲突或者浪费内存。而 import ... as ... 语句是在调用库的时候添加一个库的别名,这样之后调用起来比较方便,不用打全名。

之后的5个库都是在 Python 宇宙中比较有名的工具库,第一个是 Pandas, 是从美国的一家量化基金公司 AQR Capital 开源出来的 (我的上家),目的是解决在金融投资领域的复杂数据处理问题,和优化运算速度。之后的三个 numpy, scipy 和 sklearn 都是很流行的复杂运算,科学建模和机器学习库,一般在一个金融领域或者数据科学的 Python 程序里都会出现这几个库,而且这几个库是相互依赖的, 当你安装或者使用一个库时需要另外一个库同时安装。所以我建议直接把这些库一起安全好。

第四个是 Matplotlib, 是一个数据可视化工具。用过 Matlab 或者 RStudio 的都知道,软件里都会有自带的画图功能,可以把函数或者数据结果直接以图像的方式展现出来,matplotlib 就帮你完成了这些功能。当然还有更高级的 plotly 库,就可以完成数据交互,数据Dashboard 和 流数据等,会在之后的教程中展现出来。

最后一个是 Python 训练神经网络的时候调用的库,你会发现小到保存数据,大到神经网络,在 Python 宇宙里调用都只是一行代码而已,所以前几节基础课虽然代码含量很少,但是你能实现的功能已经非常多样了。

这里上几个库的链接:

Python Data Analysis Library​pandas.pydata.orgscikit-learn: machine learning in Python​scikit-learn.org
2c5082abc6069076823930fd2251348b.png
Matplotlib​matplotlib.orgTensorFlow​tensorflow.google.cn
94c8cfc04fb8b28a174c6ee047e37b28.png
Flask​palletsprojects.com
03e09bd3a8b49b8cc52a4a42c9d781c2.png

如何学习库

就像教程开头所说的,库相当于一个思维殿堂,信息量是海量的。除非你要建立自己的思维殿堂,否则你没必要先去每一个库去学一遍,再想着之后如何使用。

学习库最好的方法就是先确定你的需求,你想要完成什么,然后去发现相应的库,再去想办法通过调用库的资源去实现。

我在这里整理一个列表,Python 已有的库可以帮你实现的包括:

  • 科学运算: Numpy, Pandas, Scipy, Statsmodel ...
  • 机器学习: Sklearn ...
  • 神经网络: Keras, Tensorflow, Torch ...
  • 数据可视化: Matplotlib, plotly ...
  • 数据爬虫: Curl, Scrapy
  • 建立网站: Django, Flask ...
  • 云部署: AWS, Alibaba Cloud ...
  • 平台 API: 各大平台的 Python API 几乎都有

当然还有很多其他的,更新更全的库,因为我这里只列举一些比较常用的,而且会在接下来教程中平凡用到的。你已经可以发现你可以完成的事情已经爆发式增长了,比方说你要建立一个全自动的数据流网页:

Flask (网站后台) ---> Numpy + Pandas + Scrapy (获得,处理数据) ---> Plotly (数据可视化)

如果你要走的更远,在云 (AWS, Alibaba Cloud) 上部署一个 Siri 的微服务器 (Flask),就可以直接通过 iPhone 的 快捷应用远程指挥你的网站后台,来给你实时推送流数据。

在之后的教程中,我们会一整遍走过这个流程,随后每个人 (不一定要计算机专业的学生) 都可以利用 Python 来完成一些人工无法完成的事情。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499137.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

arm linux 加载.a,如何将libc.a链接到arm-linux中的共享库中使用arm-none-linux-gnueabi-gcc...

在一个项目中,我的同事创建了一个静态库,例如liba.a,它与app链接.在liba.a中,他将libc malloc()覆盖为其所有者版本.我创建了一个共享库libs.so,它也与app链接.问题是当我的libs.so与app链接时,我的libs.so中使用的malloc()将是liba.a中的那个,而不是标准libc.so中的那个,这会导…

抽象工厂模式java_《JAVA与模式》之抽象工厂模式

场景问题举个生活中常见的例子——组装电脑&#xff0c;我们在组装电脑的时候&#xff0c;通常需要选择一系列的配件&#xff0c;比如CPU、硬盘、内存、主板、电源、机箱等。为讨论使用简单点&#xff0c;只考虑选择CPU和主板的问题。事实上&#xff0c;在选择CPU的时候&#x…

c语言关键用法大全,c语言关键字的用法详解

《c语言关键字的用法详解》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《c语言关键字的用法详解(10页珍藏版)》请在人人文库网上搜索。1、最新 料推荐1. Static 用法1.1 static 声明的变量在 C语言中有两方面的特征&#xff1a;1) 、变量会被放在程序的全局存储区中…

java架构师_什么样的经历,才能领悟成为Java架构师?

最近我发现&#xff0c;无论是博客也好&#xff0c;还是我写的技术专栏也好&#xff0c;经常会收到很多朋友的留言&#xff0c;留言的内容除了讨论技术问题以外&#xff0c;问的最多的&#xff0c;莫过于职业生涯规划相关的了。例如&#xff1a;我刚毕业&#xff0c;如何入行Ja…

c语言实验报告9 四川师范大学,四川师范大学c语言实验报告.docx

四川师范大学c语言实验报告.docx下载提示(请认真阅读)1.请仔细阅读文档&#xff0c;确保文档完整性&#xff0c;对于不预览、不比对内容而直接下载带来的问题本站不予受理。2.下载的文档&#xff0c;不会出现我们的网址水印。3、该文档所得收入(下载内容预览)归上传者、原创作者…

c语言位运算八进制转二进制,C语言十进制转换二进制八,十六进制。二进制转十进制。...

C语言十进制转换二进制八&#xff0c;十六进制。十进制转二进制有个计算公式&#xff0c;就是除以2取余再倒序显示余数就是了。可以根据公式写。八制进公式也同理。十六进制有点不一样&#xff0c;大于9的要转为字母。A,B,C,D,E,F。#include void totwo();void toeight();void …

浏览器崩溃_微软最新系统再迎“喜报”:更多用户的浏览器开始崩溃

Windows 10又闯祸了。事实上&#xff0c;新浪VR最近已接二连三地道了该系统的严重Bug问题&#xff0c;而这一次又跟浏览器有关。有很多用户在升级到最新版Windows 10 v2004之后发现&#xff0c;每次只要重启计算机&#xff0c;自己正常使用的Chorme就会被强制注销&#xff0c;而…

用python画画简单代码_震撼!用Python开发网站如此简单

Flask是一个基于Python语言的微型Web框架。之所以被称为微型&#xff0c;是因为其核心非常小&#xff0c;但是该Web框架简约而不简单&#xff0c;具有很强的扩展能力。本文介绍如何编写和运行第一个Flask Web应用程序。当然&#xff0c;阅读本文之前&#xff0c;需要读者有一定…

c语言中char函数返回值,用于返回char的C函数的PInvoke

我正在尝试编写一些从非托管DLL调用方法的C&#xff03;代码。dll中的函数原型为&#xff1a;extern "C" __declspec(dllexport) char *foo(void);在C&#xff03;中&#xff0c;我首先使用&#xff1a;[DllImport(_dllLocation)]public static extern string foo();…

电脑有摄像头吗_网络答辩来了,我摄像头呢???

我们学校已经确定要网络答辩了。今明两天是预演答辩&#xff0c;就是指导老师带着我们一起熟悉下钉钉的使用流程&#xff0c;模拟一下答辩的过程&#xff0c;以免因为自己的不熟练而影响答辩的成绩。我们老师的意思&#xff0c;正式网络答辩过程中&#xff0c;因为自己的不熟练…

grubbs检测c语言,Grubbs算法检测离群值

▲概述&#xff1a;一组测量数据中&#xff0c;如果个别数据偏离平均值很远&#xff0c;那么这个(这些)数据称作“可疑值”。如果用统计方法—例如格拉布斯(Grubbs)法判断&#xff0c;能将“可疑值”从此组测量数据中剔除而不参与平均值的计算&#xff0c;那么该“可疑值”就称…

将十个数进行从大到小的顺序进行排列_如何进行商品ABC分类管理

​ ABC管理法是根据事物的经济、技术等方面的主要特征&#xff0c;运用数理统计方法&#xff0c;进行统计、排列和分析&#xff0c;抓住主要矛盾&#xff0c;分清重点与一般&#xff0c;从而有区别地采取管理方式的一种定量管理方法。又称主次分析法 、ABC分析法、分类管理法、…

c语言around用法,KET基础语法:介词among和around的用法及例句

孩子们开始学习KET考试后&#xff0c;标志着他们开始系统地学习语法&#xff0c;对孩子们来说是不小的挑战。复杂的语法时态、不同类型的介词、短语等&#xff0c;都要求他们掌握正确的复习方法&#xff0c;才能避免学习语法后&#xff0c;而不知道如何运用的误区。而学会错题整…

vue函数如何调用其他函数?_python函数调用的四种方式

第一种&#xff1a;参数按顺序从第一个参数往后排#标准调用运行结果&#xff1a;第二种&#xff1a;#关键字调用注意&#xff1a;关键调用从哪开始的&#xff0c;从哪以后都必须使用关键字调用除了‘*’收集参数。不能写成这样的&#xff1a;keyword_invoke(y1, 2)&#xff0c;…

c语言酒店管理系统设计目的,C语言酒店管理系统设计.doc

《C程序设计》课程设计报告《C程序设计》课程设计报告班级 计科101班 学号 37 姓名 毛翔 得分一 目的加深对C/C语言知识的理解&#xff0c;扩大相关知识面&#xff0c;培养对这些知识的应用能力。通过一个实际问题的C/C语言源程序的编写和调试&#xff0c;提高综合运用C/C语言、…

android 基类封装用法,Android 基类封装之Fragment【原创】

现在的Android开发中&#xff0c;Activity和Fragment都是必不可少的&#xff0c;正如上篇博客所写&#xff0c;我们都会封装一个基类的Activity来做一些公共基础的操作。对于Fragment应用的越发广泛&#xff0c;在实际开发中&#xff0c;我们也应当封装一个基础的Fragment&…

fastjson 序列化 不包括转义字符_Java 反序列化工具 gadgetinspector 初窥 (上)

作者&#xff1a;Longofo知道创宇404实验室时间&#xff1a;2019年9月4日起因一开始是听Badcode师傅说的这个工具&#xff0c;在Black Hat 2018的一个议题提出来的。这是一个基于字节码静态分析的、利用已知技巧自动查找从source到sink的反序列化利用链工具。看了几遍作者在Bla…

linux gentoo安装,Gentoo安装教程——萌新向

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼手动配置内核激动人心的时刻到了&#xff0c;手动配置内核&#xff01;先下载内核源代码&#xff0c;官方推荐使用gentoo-source&#xff0c;然后进入源代码目录&#xff0c;进行设置。详细的设置可以看金步国的文章。这里我只说说…

char类型怎么输入 c语言_C语言中的char

C语言中的char是用于声明单个字符的关键字。char关键字具有一些很奇怪的特点&#xff0c;但是想要了解这些奇怪的特点为什么会存在&#xff0c;我们就要先了解char关键字的原理。char关键字会在内存中找到一字节的空闲空间&#xff0c;并且在里面写入一个从0到255的整型&#x…

android webview网页显示不完整,【报Bug】webview页面内容显示不全

详细问题描述更新到2.6.0之后&#xff0c;进入webview页面&#xff0c;嵌入的html页面无法完全显示&#xff0c;部分内容被遮挡[内容]重现步骤[步骤]进入webview页面[结果]内容无法完全显示&#xff0c;部分内容被遮挡[期望]内容显示正常[如果语言难以表述清晰&#xff0c;拍一…