菜鸟学习人工智能第七期:模块(就是程序)与Python常用的140个标准库推荐,文末有免费学习资料

  • Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块让你能够有逻辑地组织你的 Python 代码段。把相关的代码分配到一个模块里能让你的代码更好用,更易懂。模块能定义函数,类和变量,模块里也能包含可执行的代码。

     例如(回顾前面的知识点):
     容器(如列表、元组、字符串和字典等)是对数据的封装。
     函数是程序语句的封装。
     类是对方法和属性的封装(也是对函数和数据的封装)。
    

7.1 模块即程序

在Py的安装目录下调用hello模块, hello.py中的代码块

def haha():
    print("我爱你,中国!")
1.JPG

@w=100

下面在命令窗口导入该模块


>>> import hello
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    import hello
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\hello.py", line 2
SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xce in position 0: invalid continuation byte

上述一开始导入模块就报错的原因是记事本保存的时候没有设置为UTF-8的形式保存(切记不要犯错),所以要重新修改后的运行结果

>>> import hello
>>> haha()
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    haha()
NameError: name 'haha' is not defined

此时,出错的原因是找不到haha()函数,因为提示无定义,为了解决这个问题我们需要引入一个概念:

7.2命名空间(Namespace)表示标识符的可见范围

一个标识符可在多个命名空间中定义,他在多个命名空间互不相干,
例如:两个班级都有“”姚明“”这个名字,但是在期末考试的全校成绩排名的时候名单上就不知道姚明是哪个班的了,因此我们在调用的函数前面添加班级名(也就是标识符)就可以了。
简单来说就是你在安装目录下命名的hello.py文件名即hello(标识符),那么如何来解决,其实只需要

>>> hello.haha()
我爱你,中国!

7.3模块的导入

1. import模块名

再写一个例子(同样在安装目录下操作):temp.py

def Ta(cel):
    fah = cel * 1.8 + 32
    return fah

def Tb(fah):
    cel = (fah - 32) / 1.8
    return cel

类似地,我们也可以调用得到

>>> print("26.0摄氏度 = %.2f华氏度" % temp.Ta(26.0))
26.0摄氏度 = 78.80华氏度
>>> print("98.0华氏度 = %.2f摄氏度" % temp.Tb(98.0))
98.0华氏度 = 36.67摄氏度

2. from模块名 import函数名

上述模块导入的命名空间有时太长也不太好,这样带来不便,每次都要重复输入,给读者的阅读体验也不是很好。为了解决这个不便捷的方法,我们使用下面的一种技巧可以将命名空间直接覆盖进来,调用时不再加上命名空间。

>>> from temp import Ta, Tb
>>> print("26.0摄氏度 = %.2f华氏度" % Ta(26.0))
26.0摄氏度 = 78.80华氏度
>>> print("98.0华氏度 = %.2f摄氏度" % Tb(98.0))
98.0华氏度 = 36.67摄氏度

也可以使用通配符号(*)来导入模块中的所有命名空间(不建议使用,因为有时会陷入名字混乱)

>>> from temp import *
>>> print("26.0摄氏度 = %.2f华氏度" % Ta(26.0))
26.0摄氏度 = 78.80华氏度
>>> print("98.0华氏度 = %.2f摄氏度" % Tb(98.0))
98.0华氏度 = 36.67摄氏度

3.import模块名as 新名字(推荐使用)

替换一个新的名字(但可以不改变按住目录下的名字)

>>> import temp as tp
>>> print("26.0摄氏度 = %.2f华氏度" % tp.Ta(26.0))
26.0摄氏度 = 78.80华氏度
>>> print("98.0华氏度 = %.2f摄氏度" % tp.Tb(98.0))
98.0华氏度 = 36.67摄氏度

7.4__name__ == '__main__'

在很多代码程序中都有
if__name__ == '__main__'
为了解释这个代码,我先给大家举出一个列子,下面这是不测试的情况,思路与上面一样。

def Ta(cel):
    fah = cel * 1.8 + 32
    return fah

def Tb(fah):
    cel = (fah - 32) / 1.8
    return cel

def test():
    print("26.0摄氏度 = %.2f华氏度" % Ta(26.0))
    print("98.0华氏度 = %.2f摄氏度" % Tb(98.0))

调用

>>> test()
26.0摄氏度 = 78.80华氏度
98.0华氏度 = 36.67摄氏度

测试之后可以直接单独运行

ef Ta(cel):
    fah = cel * 1.8 + 32
    return fah

def Tb(fah):
    cel = (fah - 32) / 1.8
    return cel

def test():
    print("测试,0摄氏度 = %.2f华氏度" % Ta(0))
    print("测试,0华氏度 = %.2f摄氏度" % Tb(0))

test()

运行结果

>>> 
=================== RESTART: F:\Pypractise\第七期:模块\temp2.py ===================
测试,0摄氏度 = 32.00华氏度
测试,0华氏度 = -17.78摄氏度

这里要注意的是如果是在另一个文件中(temp.py(在C盘安装目录下)),导入后再调用会出现一块儿执行的情况问题(略)。

为了避免这个情况发生,关键是在于:要让Python知道该模块是作为程序运行还是导入到其他程序中,这一点一定要明确区分。为了实现这一点,需要使用模块的name属性:

>>> __name__
'__main__'
>>> tc.__name__
'temp'

那么,从上面可以看出,name属性值是 '__main__',而作为模块导入的时候,这个值就是该模块的名字了。对于代码__name__ == '__main__'的理解就有思路了。

def Ta(cel):
    fah = cel * 1.8 + 32
    return fah

def Tb(fah):
    cel = (fah - 32) / 1.8
    return cel

def test():
    print("测试,0摄氏度 = %.2f华氏度" % Ta(0))
    print("测试,0华氏度 = %.2f摄氏度" % Tb(0))
if __name__ == '__main__':
     test()

运行结果

>>> 
=================== RESTART: F:/Pypractise/第七期:模块/temp3.py ===================
测试,0摄氏度 = 32.00华氏度
测试,0华氏度 = -17.78摄氏度

这样就确保了只有单独运行temp3.py时才会执行test()函数。(从而解决测试函数出现一块儿执行的情况)

7.5 如何进行搜索路劲

方案:写好的模块放在和导入这个模块文件的源代码同一个文件夹内,但是有一些读者可能不希望把所有代码都放在一个篮子里。因为我们想通过文件夹的方式更好的组织我的代码。

搜索路劲(一组目录):就是我们一开始导入一个叫hello.py的模块文件,如果模块存在,则调用不报错;否则,报错即导入失败。
其次,搜索路劲(一组目录)可以通过sys模块中的path变量显示出来(简单来说就是模块存在的位置)

>>> import sys
>>> sys.path
['F:/Pypractise/第七期:模块', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37-32\\Lib\\idlelib', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37-32\\Lib\\site-packages\\easygui-0.98.0_UNRELEASED-py3.7.egg\\easygui', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37-32\\python37.zip', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37-32\\DLLs', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37-32\\lib', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37-32', 'C:\\Users\\Administrator\\AppData\\Roaming\\Python\\Python37\\site-packages', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages\\easygui-0.98.0_unreleased-py3.7.egg', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages\\pelican-4.1.0-py3.7.egg', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages\\unidecode-1.1.1-py3.7.egg', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages\\blinker-1.4-py3.7.egg', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages\\pytz-2019.1-py3.7.egg', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages\\docutils-0.14-py3.7.egg', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages\\pygments-2.4.2-py3.7.egg', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages\\jinja2-2.10.1-py3.7.egg', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages\\feedgenerator-1.9-py3.7.egg', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages\\markupsafe-1.1.1-py3.7-win32.egg']

列出的这些模块都是前面我们在Python导入过的模块时去搜索的(有记录导入模块的作用)。尽管这些模块都可以使用,但是site-packages目录是最佳的选择,因为从上面的代码中可以看出它(site-packages)就是用来做这些事情的。

按照以上的逻辑来说,只要知道模块的位置在哪里,Python自然能正确找到相应的位置对模块进行导入:
如果存放模块的位置是C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32

>>> import temp2
Traceback (most recent call last):
  File "<pyshell#13>", line 1, in <module>
    import temp3
ModuleNotFoundError: No module named 'temp2

直接导入模块显然出错,主要是因为搜索路劲不包括模块的位置,如果把模块的位置添加到搜索路劲中就可以了

  • 搜索路总结

当你导入一个模块,Python 解析器对模块位置的搜索顺序是:
1、当前目录
2、如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。
3、如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。
模块搜索路径存储在 system 模块的 sys.path 变量中。
变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。

7.6 什么是包,包的作用

包:把模块分门类别存放在不同的文件夹,然后把每个文件夹的位置告诉Python.

创建一个包的具体操作如下:
(1)创建一个文件夹,用于存放指定的模块,文件夹的名字就是包的名字;
(2)在文件夹中创建一个的模块文件,内容可以为空;
(3)将指定的模块放入文件夹(包)中。
举例,目录结构如下(记事本保存时选择utf-8):
test.py
package
|-- init.py
|-- task1.py
|-- task2.py

源代码如下:
packageround/task1.py
def task1():
print "I'm in task1"

packageround/task2.py
def task2():
print "I'm in task2"
现在,在 package 目录下创建 init.py:

packageround/init.py

if name == 'main':
print '作为主程序运行'
else:
print 'packageround 初始化'
然后我们在 packageround 同级目录下创建 test.py 来调用 packageround 包

test.py

导入 Phone 包

from packageround.task1 import task1
from packageround.task2 import task2

task1()
task2()
以上实例输出结果:

packageround 初始化
I'm in task1
I'm in task2

或者也可以这样l理解:
包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。
简单来说,包就是文件夹,但该文件夹下必须存在__init__.py文件, 该文件的内容可以为空。
__init__.py用于标识当前文件夹是一个包。

7.7 标准库里的模块

Python的标准库有上百种,一个一个的讲是不现实的,毕竟时间有限。因此,本小节只论述部分标准库的使用,其余的库会在文章末尾以附件形式展示。

对于一个开发者来说不得不了解Python的文档,该文档包含了学习资料和教程。可以在解释器中打开help——>Doc, 调出如下
[图片上传失败...(image-b3ea7e-1565796561052)] @w=400
这里面的内容非常详细,大家可以看看,对于标准库太多的情况下,最好的就是当字典来用,当自己用到了就查询一下即可。也可以通过下面的网站查询:

Python库参考(被称为Python枕边书)
https://docs.python.org/2.4/lib/lib.html

4.JPG

关于Python的第三方模块的安装我在前几期讲过了,这里就不在重复,我使用的是在win7下进行的,cmd打开运行,使用如下的命令就可以运行安装了(只举几个)
win系统的模块安装命令:
python -m pip install * (* 代表模块名)
例如:
python -m pip install matplotlib
python -m pip install scipy
python -m pip install sympy
python -m pip install numpy
python -m pip install opencv-python#图像处理模块

还可以通过网站:
https://docs.python.org/3/distributing/index.html
来了解如何发布Python的第三方文件(该网站也给出 了很多模块安装教程)

5.JPG
@w=400

如果我们不知道哪一个模块的用法,应该从何处下手?
下面以timeit模块为例:
在刚刚的Python文档下可以查询,索引下输入timeit就可以查到


6.JPG

点击进入模块就可以详细了解模块的用法了。

上述timeit模块的用法是测试小段代码的执行时间


7.JPG

该模块的优势:灵活避开了测量执行时间容易出现的错误,
上图就是给出的一个例子。
但是如果按照这样去查每个模块的函数,类的用法太繁琐了,因此我们只需要通过相应的命令就可以查询到模块用法:
(调用doc文档,用print打印出来。)

>>> import timeit
>>> print(timeit.__doc__)
Tool for measuring execution time of small code snippets.

This module avoids a number of common traps for measuring execution
times.  See also Tim Peters' introduction to the Algorithms chapter in
the Python Cookbook, published by O'Reilly.

Library usage: see the Timer class.

Command line usage:
    python timeit.py [-n N] [-r N] [-s S] [-p] [-h] [--] [statement]

Options:
  -n/--number N: how many times to execute 'statement' (default: see below)
  -r/--repeat N: how many times to repeat the timer (default 5)
  -s/--setup S: statement to be executed once initially (default 'pass').
                Execution time of this setup statement is NOT timed.
  -p/--process: use time.process_time() (default is time.perf_counter())
  -v/--verbose: print raw timing results; repeat for more digits precision
  -u/--unit: set the output time unit (nsec, usec, msec, or sec)
  -h/--help: print this usage message and exit
  --: separate options from statement, use when statement starts with -
  statement: statement to be timed (default 'pass')

A multi-line statement may be given by specifying each line as a
separate argument; indented lines are possible by enclosing an
argument in quotes and using leading spaces.  Multiple -s options are
treated similarly.

If -n is not given, a suitable number of loops is calculated by trying
successive powers of 10 until the total time is at least 0.2 seconds.

Note: there is a certain baseline overhead associated with executing a
pass statement.  It differs between versions.  The code here doesn't try
to hide it, but you should be aware of it.  The baseline overhead can be
measured by invoking the program without arguments.

Classes:

    Timer

Functions:

    timeit(string, string) -> float
    repeat(string, string) -> list
    default_timer() -> float

使用dir()函数可以查询到模块定义了那些变量、函数和类:

>>> dir(timeit)
['Timer', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_globals', 'default_number', 'default_repeat', 'default_timer', 'dummy_src_name', 'gc', 'itertools', 'main', 'reindent', 'repeat', 'sys', 'template', 'time', 'timeit']

不过上述的这些名字对我们来说并不是都能用到,因此我们可以过滤掉一下东西(筛选),比如上面的代码块中的all属性,它可以帮助我们完成这样一项过滤操作:

>>> timeit.__all__
['Timer', 'timeit', 'repeat', 'default_timer']

还可以使用help()函数查询详细的模块用法:

>>> help(timeit)
Help on module timeit:

NAME
    timeit - Tool for measuring execution time of small code snippets.

DESCRIPTION
    This module avoids a number of common traps for measuring execution
    times.  See also Tim Peters' introduction to the Algorithms chapter in
    the Python Cookbook, published by O'Reilly.
    
    Library usage: see the Timer class.
    
    Command line usage:
        python timeit.py [-n N] [-r N] [-s S] [-p] [-h] [--] [statement]
    
    Options:
      -n/--number N: how many times to execute 'statement' (default: see below)
      -r/--repeat N: how many times to repeat the timer (default 5)
      -s/--setup S: statement to be executed once initially (default 'pass').
                    Execution time of this setup statement is NOT timed.
      -p/--process: use time.process_time() (default is time.perf_counter())
      -v/--verbose: print raw timing results; repeat for more digits precision
      -u/--unit: set the output time unit (nsec, usec, msec, or sec)
      -h/--help: print this usage message and exit
      --: separate options from statement, use when statement starts with -
      statement: statement to be timed (default 'pass')
    
    A multi-line statement may be given by specifying each line as a
    separate argument; indented lines are possible by enclosing an
    argument in quotes and using leading spaces.  Multiple -s options are
    treated similarly.
    
    If -n is not given, a suitable number of loops is calculated by trying
    successive powers of 10 until the total time is at least 0.2 seconds.
    
    Note: there is a certain baseline overhead associated with executing a
    pass statement.  It differs between versions.  The code here doesn't try
    to hide it, but you should be aware of it.  The baseline overhead can be
    measured by invoking the program without arguments.
    
    Classes:
    
        Timer
    
    Functions:
    
        timeit(string, string) -> float
        repeat(string, string) -> list
        default_timer() -> float

CLASSES
    builtins.object
        Timer
    
    class Timer(builtins.object)
     |  Timer(stmt='pass', setup='pass', timer=<built-in function perf_counter>, globals=None)
     |  
     |  Class for timing execution speed of small code snippets.
     |  
     |  The constructor takes a statement to be timed, an additional
     |  statement used for setup, and a timer function.  Both statements
     |  default to 'pass'; the timer function is platform-dependent (see
     |  module doc string).  If 'globals' is specified, the code will be
     |  executed within that namespace (as opposed to inside timeit's
     |  namespace).
     |  
     |  To measure the execution time of the first statement, use the
     |  timeit() method.  The repeat() method is a convenience to call
     |  timeit() multiple times and return a list of results.
     |  
     |  The statements may contain newlines, as long as they don't contain
     |  multi-line string literals.
     |  
     |  Methods defined here:
     |  
     |  __init__(self, stmt='pass', setup='pass', timer=<built-in function perf_counter>, globals=None)
     |      Constructor.  See class doc string.
     |  
     |  autorange(self, callback=None)
     |      Return the number of loops and time taken so that total time >= 0.2.
     |      
     |      Calls the timeit method with increasing numbers from the sequence
     |      1, 2, 5, 10, 20, 50, ... until the time taken is at least 0.2
     |      second.  Returns (number, time_taken).
     |      
     |      If *callback* is given and is not None, it will be called after
     |      each trial with two arguments: ``callback(number, time_taken)``.
     |  
     |  print_exc(self, file=None)
     |      Helper to print a traceback from the timed code.
     |      
     |      Typical use:
     |      
     |          t = Timer(...)       # outside the try/except
     |          try:
     |              t.timeit(...)    # or t.repeat(...)
     |          except:
     |              t.print_exc()
     |      
     |      The advantage over the standard traceback is that source lines
     |      in the compiled template will be displayed.
     |      
     |      The optional file argument directs where the traceback is
     |      sent; it defaults to sys.stderr.
     |  
     |  repeat(self, repeat=5, number=1000000)
     |      Call timeit() a few times.
     |      
     |      This is a convenience function that calls the timeit()
     |      repeatedly, returning a list of results.  The first argument
     |      specifies how many times to call timeit(), defaulting to 5;
     |      the second argument specifies the timer argument, defaulting
     |      to one million.
     |      
     |      Note: it's tempting to calculate mean and standard deviation
     |      from the result vector and report these.  However, this is not
     |      very useful.  In a typical case, the lowest value gives a
     |      lower bound for how fast your machine can run the given code
     |      snippet; higher values in the result vector are typically not
     |      caused by variability in Python's speed, but by other
     |      processes interfering with your timing accuracy.  So the min()
     |      of the result is probably the only number you should be
     |      interested in.  After that, you should look at the entire
     |      vector and apply common sense rather than statistics.
     |  
     |  timeit(self, number=1000000)
     |      Time 'number' executions of the main statement.
     |      
     |      To be precise, this executes the setup statement once, and
     |      then returns the time it takes to execute the main statement
     |      a number of times, as a float measured in seconds.  The
     |      argument is the number of times through the loop, defaulting
     |      to one million.  The main statement, the setup statement and
     |      the timer function to be used are passed to the constructor.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)

FUNCTIONS
    default_timer = perf_counter(...)
        perf_counter() -> float
        
        Performance counter for benchmarking.
    
    repeat(stmt='pass', setup='pass', timer=<built-in function perf_counter>, repeat=5, number=1000000, globals=None)
        Convenience function to create Timer object and call repeat method.
    
    timeit(stmt='pass', setup='pass', timer=<built-in function perf_counter>, number=1000000, globals=None)
        Convenience function to create Timer object and call timeit method.

DATA
    __all__ = ['Timer', 'timeit', 'repeat', 'default_timer']

FILE
    c:\users\administrator\appdata\local\programs\python\python37-32\lib\timeit.py

如果看不太懂python的文档,可以翻译或者百度搜索一下即可。

下面是Python标准库的归纳:
导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库、函数和外部工具。其中既有Python内置函数和标准库,又有第三方库和工具。

这些库可用于文件读写、网络抓取和解析、数据连接、数清洗转换、数据计算和统计分析、图像和视频处理、音频处理、数据挖掘/机器学习/深度学习、数据可视化、交互学习和集成开发以及其他Python协同数据工作工具。

python 资料获取方式:转发+私信【Python】

阅读文本大概需要 32 分钟。

吐血整理!140种Python标准库、第三方库和外部工具都有了

为了区分不同对象的来源和类型,本文将在描述中通过以下方法进行标识:

  • Python内置函数:Python自带的内置函数。函数无需导入,直接使用。例如要计算-3.2的绝对值,直接使用abs函数,方法是

abs(-3.2)

  • Python标准库:Python自带的标准库。Python标准库无需安装,只需要先通过import方法导入便可使用其中的方法。例如导入string模块,然后使用其中的find方法:

import string

string.find('abcde','b')

  • 第三方库:Python的第三方库。这些库需要先进行安装(部分可能需要配置)。

  • 外部工具:非Python写成的库或包,用于Python数据工作的相关工具。

推荐度」3星最高,1星最低。

01 文件读写

文件的读写包括常见的txt、Excel、xml、二进制文件以及其他格式的数据文本,主要用于本地数据的读写。

吐血整理!140种Python标准库、第三方库和外部工具都有了

1. open(name[, mode[, buffering]])

  • 类型:Python内置函数
  • 描述:Python默认的文件读写方法
  • 推荐度:★★★

2. numpy.loadtxt、numpy.load和numpy.fromfile

  • 类型:第三方库
  • 描述:Numpy自带的读写函数,包括loadtxt、load和fromfile,用于文本、二进制文件读写
  • 推荐度:★★★

3. pandas.read_*

  • 类型:第三方库
  • 描述:Pandas自带的read文件方法,例如ead_csv、read_fwf、read_table等,用于文本、Excel、二进制文件、HDF5、表格、SAS文件、SQL数据库、Stata文件等的读写
  • 推荐度:★★★

4. xlrd

  • 类型:第三方库
  • 描述:用于Excel文件读取
  • 推荐度:★★

5. xlwt

  • 类型:第三方库
  • 描述:用于Excel文件写入
  • 推荐度:★★

6. pyexcel-xl

  • 类型:第三方库
  • 描述:用于Excel文件读写
  • 推荐度:★★

7. xluntils

  • 类型:第三方库
  • 描述:用于Excel文件读写
  • 推荐度:★★

8. pyExcelerator

  • 类型:第三方库
  • 描述:用于Excel文件读写
  • 推荐度:

9. openpyxl

  • 类型:第三方库
  • 描述:用于Excel文件读写
  • 推荐度:

10. lxml

  • 类型:第三方库
  • 描述:xml和HTML读取和解析
  • 推荐度:★★★

11. xml

  • 类型:Python标准库
  • 描述:xml对象解析和格式化处理
  • 推荐度:★★★

12. libxml2

  • 类型:第三方库
  • 描述:xml对象解析和格式化处理
  • 推荐度:

13. xpath

  • 类型:第三方库
  • 描述:xml对象解析和格式化处理
  • 推荐度:★★

14. win32com

  • 类型:第三方库
  • 描述:有关Windows系统操作、Office(Word、Excel等)文件读写等的综合应用库
  • 推荐度:

02 网络抓取和解析

网络抓取和解析用于从互联网中抓取信息,并对HTML对象进行处理,有关xml对象的解析和处理的库在“01 文件读写”中找到。

吐血整理!140种Python标准库、第三方库和外部工具都有了

python 资料获取方式:转发+私信【Python】

15. requests

  • 类型:第三方库
  • 描述:网络请求库,提供多种网络请求方法并可定义复杂的发送信息
  • 推荐度:★★★

16. urllib

  • 类型:Python标准库
  • 描述:Python自带的库,简单的读取特定URL并获得返回的信息
  • 推荐度:★★

17. urllib2

  • 类型:Python标准库
  • 描述:Python自带的库,读取特定URL并获得返回的信息,相对于urllib可处理更多HTTP信息,例如cookie、身份验证、重定向等
  • 推荐度:★★

18. urlparse

  • 类型:Python标准库
  • 描述:Python自带的URL解析库,可自动解析URL不同的域、参数、路径等
  • 推荐度:★★★

19. HTMLParser

  • 类型:Python标准库
  • 描述:Python自带的HTML解析模块,能够很容易的实现HTML文件的分析
  • 推荐度:★★★

20. Scapy

  • 类型:第三方库
  • 描述:分布式爬虫框架,可用于模拟用户发送、侦听和解析并伪装网络报文,常用于大型网络数据爬取
  • 推荐度:★★★

21. Beautiful Soup

  • 类型:第三方库
  • 描述:Beautiful Soup是网页数据解析和格式化处理工具,通常配合Python的urllib、urllib2等库一起使用
  • 推荐度:★★★

03 数据库连接

数据库连接可用于连接众多数据库以及访问通用数据库接口,可用于数据库维护、管理和增、删、改、查等日常操作。

吐血整理!140种Python标准库、第三方库和外部工具都有了

22. mysql-connector-python

  • 类型:第三方库
  • 描述:MySQL官方驱动连接程序
  • 推荐度:★★★

23. pymysql

  • 类型:第三方库
  • 描述:MySQL连接库,支持Python3
  • 推荐度:★★★

24. MySQL-python

  • 类型:第三方库
  • 描述:MySQL连接库
  • 推荐度:★★

25. cx_Oracle

  • 类型:第三方库
  • 描述:Oracle连接库
  • 推荐度:★★★

26. psycopg2

  • 类型:第三方库
  • 描述:Python编程语言中非常受欢迎的PostgreSQL适配器
  • 推荐度:★★★

27. redis

  • 类型:Python标准库
  • 描述:Redis连接库
  • 推荐度:★★★

28. pymongo

  • 类型:第三方库
  • 描述:MongoDB官方驱动连接程序
  • 推荐度:★★★

29. HappyBase

  • 类型:第三方库
  • 描述:HBase连接库
  • 推荐度:★★★

30. py2neo

  • 类型:第三方库
  • 描述:Neo4j连接库
  • 推荐度:★★★

31. cassandra-driver

  • 类型:第三方库
  • 描述:Cassandra(1.2+)和DataStax Enterprise(3.1+)连接库
  • 推荐度:★★★

32. sqlite3

  • 类型:Python标准库
  • 描述:Python自带的模块,用于操作SQLite数据库
  • 推荐度:★★★

33. pysqlite2

  • 类型:第三方库
  • 描述:SQLite 3.x连接库
  • 推荐度:★★

34. bsddb3

  • 类型:第三方库
  • 描述:Berkeley DB连接库

35. bsddb

  • 类型:Python标准库
  • 描述:Python自带的模块,提供了一个到Berkeley DB库的接口
  • 推荐度:★★

36. dbhash

  • 类型:Python标准库
  • 描述:Python自带的模块,dbhash模块提供了使用BSD数据库库打开数据库的功能。该模块镜像了提供对DBM样式数据库访问的其他Python数据库模块的接口。bsddb模块需要使用dbhash
  • 推荐度:★★

37. adodb

  • 类型:第三方库
  • 描述:ADOdb是一个数据库抽象库,支持常见的数据和数据库接口并可自行进行数据库扩展,该库可以对不同数据库中的语法进行解析和差异化处理,具有很高的通用性
  • 推荐度:★★★

38. SQLObject

  • 类型:第三方库
  • 描述:SQLObject是一种流行的对象关系管理器,用于向数据库提供对象接口,其中表为类、行为实例、列为属性
  • 推荐度:★★

39. SQLAlchemy

  • 类型:第三方库
  • 描述:SQLAlchemy是Python SQL工具包和对象关系映射器,为应用程序开发人员提供了SQL的全部功能和灵活性控制
  • 推荐度:★★

40. ctypes

  • 类型:第三方库
  • 描述:ctypes是Python的一个外部库,提供和C语言兼容的数据类型,可以很方便地调用C DLL中的函数
  • 推荐度:★★★

41. pyodbc

  • 类型:第三方库
  • 描述:Python通过ODBC访问数据库的接口库
  • 推荐度:★★★

42. Jython

  • 类型:第三方库
  • 描述:Python通过JDBC访问数据库的接口库
  • 推荐度:★★★

04 数据清洗转换

数据清洗转换主用于数据正式应用之前的预处理工作。

吐血整理!140种Python标准库、第三方库和外部工具都有了

python 资料获取方式:转发+私信【Python】

43. frozenset([iterable])

  • 类型:Python内置函数
  • 描述:返回一个新的frozenset对象,可选择从iterable取得的元素
  • 推荐度:★★★

44. int(x)

  • 类型:Python内置函数
  • 描述:返回x的整数部分
  • 推荐度:★★★

45. isinstance(object, classinfo)

  • 类型:Python内置函数
  • 描述:返回object是否是指定的classinfo实例信息
  • 推荐度:★★★

46. len(s)

  • 类型:Python内置函数
  • 描述:返回对象的长度或项目数量
  • 推荐度:★★★

47. long(x)

  • 类型:Python内置函数
  • 描述:返回由字符串或数字x构造的长整型对象
  • 推荐度:★★★

48. max(iterable[, key])

  • 类型:Python内置函数
  • 描述:返回一个可迭代或最大的两个或多个参数中的最大项
  • 推荐度:★★★

49. min(iterable[, key])

  • 类型:Python内置函数
  • 描述:返回一个可迭代或最大的两个或多个参数中的最小项
  • 推荐度:★★★

50. range(start, stop[, step])

  • 类型:Python内置函数
  • 描述:用于与for循环一起创建循环列表,通过指定start(开始)、stop(结束)和step(步长)控制迭代次数并获取循环值
  • 推荐度:★★★

51. raw_input(prompt)

  • 类型:Python内置函数
  • 描述:捕获用户输入并作为字符串返回(不推荐使用input作为用户输入的捕获函数)
  • 推荐度:★★★

52. round(number[, ndigits])

  • 类型:Python内置函数
  • 描述:返回number小数点后ndigits位的四舍五入的浮点数
  • 推荐度:★★★

53. set([iterable])

  • 类型:Python内置函数
  • 描述:返回一个新的集合对象,可选择从iterable获取的元素
  • 推荐度:★★★

54. slice(start, stop[, step])

  • 类型:Python内置函数
  • 描述:返回表示由范围(start、stop、step)指定的索引集的切片对象
  • 推荐度:★★

55. sorted(iterable[, cmp[, key[, reverse]]])

  • 类型:Python内置函数
  • 描述:从iterable的项中返回一个新的排序列表
  • 推荐度:★★★

56. xrange(start, stop[, step])

  • 类型:Python内置函数
  • 描述:此函数与range()非常相似,但返回一个xrange对象而不是列表
  • 推荐度:★★★

57. string

  • 类型:Python标准库
  • 描述:字符串处理库,可实现字符串查找、分割、组合、替换、去重、大小写转换及其他格式化处理
  • 推荐度:★★★

58. re

  • 类型:Python标准库
  • 描述:正则表达式模块,在文本和字符串处理中经常使用
  • 推荐度:★★★

59. random

  • 类型:Python标准库
  • 描述:该模块为各种分布实现伪随机数生成器,支持数据均匀分布、正态(高斯)分布、对数正态分布、负指数分布、伽马和β分布等
  • 推荐度:★★★

60. os

  • 类型:Python标准库
  • 描述:用于新建、删除、权限修改、切换路径等目录操作,以及调用执行系统命令
  • 推荐度:★★★

61. os.path

  • 类型:Python标准库
  • 描述:针对目录的遍历、组合、分割、判断等操作,常用于数据文件的判断、查找、合并
  • 推荐度:★★★

62. prettytable

  • 类型:Python标准库
  • 描述:格式化表格输出模块
  • 推荐度:★★

63. json

  • 类型:Python标准库
  • 描述:Python对象与json对象的转换
  • 推荐度:★★★

64. base64

  • 类型:Python标准库
  • 描述:将任意二进制字符串编码和解码为文本字符串的Base16,Base32和Base64
  • 推荐度:★★★

05 数据计算和统计分析

数据计算和统计分析主要用于数据探查、计算和初步数据分析等工作。

吐血整理!140种Python标准库、第三方库和外部工具都有了

python 资料获取方式:转发+私信【Python】

65. numpy

  • 类型:第三方库
  • 描述:NumPy是Python科学计算的基础工具包,很多Python数据计算工作库都依赖它
  • 推荐度:★★★

66. scipy

  • 类型:第三方库
  • 描述:Scipy是一组专门解决科学和工程计算不同场景的主题工具包
  • 推荐度:★★★

67. pandas

  • 类型:第三方库
  • 描述:Pandas是一个用于Python数据分析的库,它的主要作用是进行数据分析。Pandas提供用于进行结构化数据分析的二维的表格型数据结构DataFrame,类似于R中的数据框,能提供类似于数据库中的切片、切块、聚合、选择子集等精细化操作,为数据分析提供了便捷
  • 推荐度:★★★

68. statsmodels

  • 类型:第三方库
  • 描述:Statsmodels是Python的统计建模和计量经济学工具包,包括一些描述性统计、统计模型估计和统计测试,集成了多种线性回归模型、广义线性回归模型、离散数据分布模型、时间序列分析模型、非参数估计、生存分析、主成分分析、核密度估计以及广泛的统计测试和绘图等功能
  • 推荐度:★★★

69. abs(x)

  • 类型:Python内置函数
  • 描述:返回x的绝对值
  • 推荐度:★★★

70. cmp(x, y)

  • 类型:Python内置函数
  • 描述:比较两个对象x和y,并根据结果返回一个整数。如果x <y,则返回值为负数,如果x == y则为零,如果x> y则返回值为正
  • 推荐度:★★

71. float(x)

  • 类型:Python内置函数
  • 描述:返回从数字或字符串x构造的浮点数
  • 推荐度:★★★

72. pow(x, y[, z])

  • 类型:Python内置函数
  • 描述:返回x的y次幂。如果z存在,则返回x的y次幂,模z
  • 推荐度:★★★

73. sum(iterable[, start])

  • 类型:Python内置函数
  • 描述:从左到右依次迭代,返回总和
  • 推荐度:★★★

74. math

  • 类型:Python标准库
  • 描述:数学函数库,包括正弦、余弦、正切、余切、弧度转换、对数运算、圆周率、绝对值、取整等数学计算方法
  • 推荐度:★★★

75. cmath

  • 类型:Python标准库
  • 描述:与math基本一致,区别是cmath运算的是复数
  • 推荐度:★★

76. decimal

  • 类型:Python标准库
  • 描述:10进制浮点运算
  • 推荐度:★★

77. fractions

  • 类型:Python标准库
  • 描述:分数模块提供对有理数算术的支持
  • 推荐度:★★

06 自然语言处理和文本挖掘

自然语言处理和文本挖掘库主要用于以自然语言文本为对象的数据处理和建模。

吐血整理!140种Python标准库、第三方库和外部工具都有了

78. nltk

  • 类型:第三方库
  • 描述:NLTK是一个Python自然语言处理工具,它用于对自然语言进行分类、解析和语义理解。目前已经有超过50种语料库和词汇资源
  • 推荐度:★★★

79. pattern

  • 类型:第三方库
  • 描述:Pattern是一个网络数据挖掘Python工具包,提供了用于网络挖掘(如网络服务、网络爬虫等)、自然语言处理(如词性标注、情感分析等)、机器学习(如向量空间模型、分类模型等)、图形化的网络分析模型
  • 推荐度:★★★

80. gensim

  • 类型:第三方库
  • 描述:Gensim是一个专业的主题模型(发掘文字中隐含主题的一种统计建模方法)Python工具包,用来提供可扩展统计语义、分析纯文本语义结构以及检索语义上相似的文档
  • 推荐度:★★★

81. 结巴分词

  • 类型:第三方库
  • 描述:结巴分词是国内流行的Python文本处理工具包,分词模式分为三种模式:精确模式、全模式和搜索引擎模式,支持繁体分词、自定义词典等,是非常好的Python中文分词解决方案,可以实现分词、词典管理、关键字抽取、词性标注等
  • 推荐度:★★★

82. SnowNLP

  • 类型:第三方库
  • 描述:SnowNLP是一个Python写的类库,可以方便的处理中文文本内容。该库是受到了TextBlob的启发而针对中文处理写的类库,和TextBlob不同的是这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典
  • 推荐度:★★

83. smallseg

  • 类型:第三方库
  • 描述:Smallseg是一个开源的、基于DFA的轻量级的中文分词工具包。可自定义词典、切割后返回登录词列表和未登录词列表、有一定的新词识别能力
  • 推荐度:★★

84. spaCy

  • 类型:第三方库
  • 描述:spaCy是一个Python自然语言处理工具包,它结合Python和Cython使得自然语言处理能力达到了工业强度
  • 推荐度:★★★

85. TextBlob

  • 类型:第三方库
  • 描述:TextBlob 是一个处理文本数据的Python库,可用来做词性标注、情感分析、文本翻译、名词短语抽取、文本分类等
  • 推荐度:★★

86. PyNLPI

  • 类型:第三方库
  • 描述:PyNLPI是一个适合各种自然语言处理任务的集合库,可用于中文文本分词、关键字分析等,尤其重要的是其支持中英文映射,支持UTF-8和GBK编码的字符串等
  • 推荐度:★★★

87. synonyms

  • 类型:第三方库
  • 描述:中文近义词工具包,可用于自然语言理解的很多任务:文本对齐,推荐算法,相似度计算,语义偏移,关键字提取,概念提取,自动摘要,搜索引擎等。
  • 推荐度:★★★

07 图像和视频处理

图像处理和视频处理主要适用于基于图像的操作、处理、分析和挖掘,如人脸识别、图像识别、目标跟踪、图像理解等。

吐血整理!140种Python标准库、第三方库和外部工具都有了

python 资料获取方式:转发+私信【Python】

88. PIL/Pillow

  • 类型:第三方库
  • 描述:PIL是一个常用的图像读取、处理和分析的库,提供了多种数据处理、变换的操作方法和属性。PIL仅支持到2.7版本且已经很久没有更新,一群志愿者基于PIL发布了新的分支Pillow。Pillow同时支持Python2和Python3并且加入很多新的功能
  • 推荐度:★★

89. OpenCV

  • 类型:第三方库
  • 描述:OpenCV是一个强大的图像和视频工作库。它提供了多种程序接口,支持跨平台(包括移动端)应用。OpenCV的设计效率很高,它以优化的C / C ++编写,库可以利用多核处理。除了对图像进行基本处理外,还支持图像数据建模,并预制了多种图像识别引擎,如人脸识别
  • 推荐度:★★★

90. scikit-image

  • 类型:第三方库
  • 描述:scikit-image(也称skimage)是一个图像处理库,支持颜色模式转换、滤镜、绘图、图像处理、特征检测等多种功能
  • 推荐度:★★

91. imageop

  • 类型:Python标准库
  • 描述:Python自带的函数,对图像基本操作,包括裁剪、缩放、模式转换
  • 推荐度:

92. colorsys

  • 类型:Python标准库
  • 描述:Python自带的函数,实现不同图像色彩模式的转换
  • 推荐度:

93. imghdr

  • 类型:Python标准库
  • 描述:Python自带的函数,返回图像文件的类型
  • 推荐度:

08 音频处理

音频处理主要适用于基于声音的处理、分析和建模,主要应用于语音识别、语音合成、语义理解等。

吐血整理!140种Python标准库、第三方库和外部工具都有了

94. TimeSide

  • 类型:第三方库
  • 描述:TimeSide是一个能够进行音频分析、成像、转码、流媒体和标签处理的Python框架,可以对任何音频或视频内容非常大的数据集进行复杂的处理
  • 推荐度:★★★

95. audiolazy

  • 类型:第三方库
  • 描述:audiolazy是一个用于实时声音数据流处理的库,支持实时数据应用处理、无限数据序列表示、数据流表示等
  • 推荐度:★★

96. pydub

  • 类型:第三方库
  • 描述:pydub支持多种格式声音文件,可进行多种信号处理(例如压缩、均衡、归一化)、信号生成(例如正弦、方波、锯齿等)、音效注册、静音处理等
  • 推荐度:★★★

97. audioop

  • 类型:Python标准库
  • 描述:Python自带的函数,可实现对声音片段的一些常用操作
  • 推荐度:★★

98. tinytag

  • 类型:第三方库
  • 描述:tinytag用于读取多种声音文件的元数据,涵盖MP3、OGG、OPUS、MP4、M4A、FLAC、WMA、Wave等格式
  • 推荐度:★★

99. aifc

  • 类型:Python标准库
  • 描述:Python自带的函数,读写AIFF和AIFC文件
  • 推荐度:

100. sunau

  • 类型:Python标准库
  • 描述:Python自带的函数,读写Sun AU文件
  • 推荐度:

101. wave

  • 类型:Python标准库
  • 描述:Python自带的函数,读写WAV文件
  • 推荐度:★★

102. chunk

  • 类型:Python标准库
  • 描述:Python自带的函数,读取EA IFF 85块格式的文件
  • 推荐度:

103. sndhdr

  • 类型:Python标准库
  • 描述:Python自带的函数,返回声音文件的类型
  • 推荐度:

104. ossaudiodev

  • 类型:Python标准库
  • 描述:该模块支持访问OSS(开放声音系统)音频接口
  • 推荐度:★★★

09 数据挖掘/机器学习/深度学习

数据挖掘、机器学习和深度学习等是Python进行数据建模和挖掘学习的核心模块。

吐血整理!140种Python标准库、第三方库和外部工具都有了

105. Scikit-Learn

  • 类型:第三方库
  • 描述:scikit-learn(也称SKlearn)是一个基于Python的机器学习综合库,内置监督式学习和非监督式学习机器学习方法,包括各种回归、聚类、分类、流式学习、异常检测、神经网络、集成方法等主流算法类别,同时支持预置数据集、数据预处理、模型选择和评估等方法,是一个非常完整、流行的机器学习工具库
  • 推荐度:★★★

106. TensorFlow

  • 类型:第三方库
  • 描述:TensorFlow 是谷歌的第二代机器学习系统,内建深度学习的扩展支持,任何能够用计算流图形来表达的计算,都可以使用 TensorFlow
  • 推荐度:★★★

107. NuPIC

  • 类型:第三方库
  • 描述:NuPIC是一个以HTM(分层时间记忆)学习算法为工具的机器智能平台。NuPIC适合于各种各样的问题,尤其适用于检测异常和预测应用
  • 推荐度:★★★

108. PyTorch

  • 类型:第三方库
  • 描述:PyTorch是FaceBook推出的深度学习框架,它基于Python(而非lua)产生,它提供的动态计算图是显著区别于Tensorflow等其他学习框架的地方。
  • 推荐度:★★

109. Orange

  • 类型:第三方库
  • 描述:Orange通过图形化操作界面,提供交互式数据分析功能,尤其适用于分类、聚类、回归、特征选择和交叉验证工作
  • 推荐度:★★★

110. theano

  • 类型:第三方库
  • 描述:Theano是非常成熟的深度学习库。它与Numpy紧密集成,支持GPU计算、单元测试和自我验证
  • 推荐度:★★★

111. keras

  • 类型:第三方库
  • 描述:Keras是一个用Python编写的高级神经网络API,能够运行在TensorFlow或者Theano之上,它的开发重点是实现快速实验
  • 推荐度:★★

112. neurolab

  • 类型:第三方库
  • 描述:Neurolab是具有灵活网络配置和Python学习算法的基本神经网络算法库。它包含通过递归神经网络(RNN)实现的不同变体,该库是同类RNN API中最好的选择之一
  • 推荐度:★★

113. PyLearn2

  • 类型:第三方库
  • 描述:PyLearn2是基于Theano的深度学习库,它旨在提供极大的灵活性,并使研究人员可以进行自由可控制,参数和属性的灵活、开放配置是亮点
  • 推荐度:★★★

114. OverFeat

  • 类型:第三方库
  • 描述:OverFeat是一个深度学习库,主要用于图片分类、定位物体检测
  • 推荐度:★★

115. Pyevolve

  • 类型:第三方库
  • 描述:Pyevolve是一个完整的遗传算法框架,也支持遗传编程
  • 推荐度:★★

116. Caffe2

  • 类型:第三方库
  • 描述:Cafffe2也是FaceBook推出的深度学习框架,相比于PyTorch 更适合于研究,Caffe2 适合大规模部署,主要用于计算机视觉,它对图像识别的分类具有很好的应用效果
  • 推荐度:★★

10 数据可视化

数据可视化主要用于做数据结果展示、数据模型验证、图形交互和探查等方面。

吐血整理!140种Python标准库、第三方库和外部工具都有了

python 资料获取方式:转发+私信【Python】

117. Matplotlib

  • 类型:第三方库
  • 描述:Matplotlib是Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形,开发者可以仅需要几行代码,便可以生成多种高质量图形
  • 推荐度:★★★

118. pyecharts

  • 类型:第三方库
  • 描述:基于百度Echarts的强大的可视化工具库,其提供的图形功能众多,尤其对于复杂关系的展示能力较强
  • 推荐度:★★★

119. seaborn

  • 类型:第三方库
  • 描述:Seaborn是在Matplotlib的基础上进行了更高级的API封装,它可以作为Matplotlib的补充
  • 推荐度:★★★

120. bokeh

  • 类型:第三方库
  • 描述:Bokeh是一种交互式可视化库,可以在WEB浏览器中实现美观的视觉效果
  • 推荐度:★★★

121. Plotly

  • 类型:第三方库
  • 描述:Plotly提供的图形库可以进行在线WEB交互,并提供具有出版品质的图形,支持线图、散点图、区域图、条形图、误差条、框图、直方图、热图、子图、多轴、极坐标图、气泡图、玫瑰图、热力图、漏斗图等众多图形
  • 推荐度:★★★

122. VisPy

  • 类型:第三方库
  • 描述:VisPy是用于交互式科学可视化的Python库,旨在实现快速,可扩展和易于使用
  • 推荐度:★★

123. PyQtGraph

  • 类型:第三方库
  • 描述:PyQtGraph是一个建立在PyQt4 / PySide和numpy之上的纯Python图形和GUI库,主要用于数学/科学/工程应用
  • 推荐度:★★

124. ggplot

  • 类型:第三方库
  • 描述:ggplot是用Python实现的图形输出库,类似于 R中的图形展示版本
  • 推荐度:★★★

11 交互学习和集成开发

交互学习和集成开发主要用来做Python开发、调试和集成之用,包括Python集成开发环境和IDE。

吐血整理!140种Python标准库、第三方库和外部工具都有了

125. IPython/ Jupyter

  • 类型:第三方库
  • 描述:IPython 是一个基于Python 的交互式shell,比默认的Python shell 好用得多,支持变量自动补全、自动缩进、交互式帮助、魔法命令、系统命令等,内置了许多很有用的功能和函数。从IPython4.0开始,IPython衍生出了IPython和Jupyter两个分支。在该分支正式出现之前,IPython其实已经拥有了ipython notebook功能,因此,Jupyter更像是一个ipython notebook的升级版。
  • 推荐度:★★★

126. Elpy

  • 类型:第三方库
  • 描述:Elpy是Emacs用于Python的开发环境,它结合并配置了许多其他软件包,它们都是用Emacs Lisp和Python编写的
  • 推荐度:★★

127. PTVS

  • 类型:第三方库
  • 描述:Visual Studio 的 Python 工具
  • 推荐度:★★

128. PyCharm

  • 类型:外部工具
  • 描述:PyCharm带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制并可集成IPython、系统终端命令行等,在PyCharm里几乎就可以实现所有有关Python工作的全部过程
  • 推荐度:★★★

129. LiClipse

  • 类型:外部工具
  • 描述:LiClipse是基于Eclipse的免费多语言 IDE,通过其中的PyDev可支持 Python开发应用
  • 推荐度:★★

130. Spyder

  • 类型:外部工具
  • 描述:Spyder是一个开源的Python IDE,由IPython和众多流行的Python库的支持,是一个具备高级编辑、交互式测试、调试以及数字计算环境的交互式开发环境
  • 推荐度:★★

12 其他Python协同数据工作工具

其他Python协同数据工作工具指除了上述主题以外,其他在数据工作中常用的工具或库。

131. tesseract-ocr

  • 类型:外部工具
  • 描述:这是一个Google支持的开源OCR图文识别项目,支持超过200种语言(包括中文),并支持自定义训练字符集,支持跨Windows、Linux、Mac OSX 多平台使用
  • 推荐度:★★★

132. RPython

  • 类型:第三方库
  • 描述:R集成库
  • 推荐度:★★★

133. Rpy2

  • 类型:第三方库
  • 描述:Python连接R的库

134. matpython

  • 类型:第三方库
  • 描述:MATLAB集成库
  • 推荐度:★★★

135. Lunatic Python

  • 类型:第三方库
  • 描述:Lua集成库
  • 推荐度:★★

136. PyCall.jl

  • 类型:第三方库
  • 描述:Julia集成库
  • 推荐度:★★

137. PySpark

  • 类型:第三方库
  • 描述:Spark提供的Python API
  • 推荐度:★★★

138. dumbo

  • 类型:第三方库
  • 描述:这个模块可以让Pythoner轻松的编写和运行 Hadoop 程序,程序版本比较早,可以作为参考
  • 推荐度:★★

139. dpark

  • 类型:第三方库
  • 描述:Python对Spark的克隆版本,类MapReduce框架
  • 推荐度:★★

140. streamparse

  • 类型:第三方库
  • 描述:Streamparse允许通过Storm对实时数据流运行Python代码
  • 推荐度:★★★

资料免费领取请到我的微信公众号领取

w
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • 你有经常有“晴空一鹤排云上,便引诗情到碧霄”的霸气与豪迈,其实往往“物是人非事事休,欲语泪先流”。 ...
    曦文一阅读 350评论 0 1
  • 尘世的喧嚣,皆因人心,世间的浮躁,皆因人言。 在生活中,人人都不完美,理应用宽容的心态去对待他人的缺点,用发现美的...
    清城教育阅读 153评论 0 2