目录

  • 1 模块一  Python与机器学习概述
    • 1.1 Python与机器学习简介
    • 1.2 发展历程
    • 1.3 基本语法
    • 1.4 帮助
    • 1.5 应用
    • 1.6 示例源代码(食品识别小小专家系统)
    • 1.7 示例代码   蜡笔小新
    • 1.8 小结
    • 1.9 Python基础教程(教&学资料)
      • 1.9.1 安装Python
      • 1.9.2 第一个python程序
      • 1.9.3 Python基础
      • 1.9.4 函数
      • 1.9.5 高级特性
      • 1.9.6 函数式编程
      • 1.9.7 模块
      • 1.9.8 面向对象编程
      • 1.9.9 面向对象高级编程
      • 1.9.10 错误、调试和测试
      • 1.9.11 IO编程
      • 1.9.12 进程和线程
      • 1.9.13 正则表达式
      • 1.9.14 常用内建模块
      • 1.9.15 常用第三方模块
      • 1.9.16 图形界面
      • 1.9.17 网络编程
      • 1.9.18 电子邮件
      • 1.9.19 访问数据库
      • 1.9.20 Web开发
      • 1.9.21 异步IO
      • 1.9.22 使用MicroPython
      • 1.9.23 实战训练(day1~~day10)
        • 1.9.23.1 Day 1 - 搭建开发环境
        • 1.9.23.2 Day 2 - 编写Web App骨架
        • 1.9.23.3 Day 3 - 编写ORM
        • 1.9.23.4 Day 4 - 编写Model
        • 1.9.23.5 Day 5 - 编写Web框架
        • 1.9.23.6 Day 6 - 编写配置文件
        • 1.9.23.7 Day 7 - 编写MVC
        • 1.9.23.8 Day 8 - 构建前端
        • 1.9.23.9 Day 9 - 编写API
        • 1.9.23.10 Day 10 - 用户注册和登录
      • 1.9.24 Day 11 - 编写日志创建页
      • 1.9.25 Day 12 - 编写日志列表页
      • 1.9.26 Day 13 - 提升开发效率
      • 1.9.27 Day 14 - 完成Web App
      • 1.9.28 Day 15 - 部署Web App
      • 1.9.29 Day 16 - 编写移动App
    • 1.10 FAQ
    • 1.11 阶段总结
  • 2 PYthon程序示例
    • 2.1 程序示例(一)初识程序
    • 2.2 程序示例(二)查看今天是今年的第几天
    • 2.3 程序示例(三)if elif else语句
    • 2.4 程序示例(四)元组,列表, 堆栈,队列
    • 2.5 程序示例(五)学玩游戏《学色彩  神魔三龟玩变色》
    • 2.6 程序示例(六)函数
    • 2.7 程序示例(七)字符串
    • 2.8 程序示例(八)文件
    • 2.9 程序示例(九)排序
    • 2.10 程序示例-机器学习中英单词翻译小专家
    • 2.11 程序示例      画花朵  &  画佩奇
    • 2.12 程序示例   华夏时钟
    • 2.13 示例:  显示图片,响声
    • 2.14 播放声音视频文件mp3、wmv、wav、m4a等)
    • 2.15 Python WEB开发技术实战
  • 3 模块2 NumPy数值计算
    • 3.1 ndarray创建与索引
    • 3.2 ndarray的基础操作
    • 3.3 ufunc
    • 3.4 小结
    • 3.5 习题与实训
  • 4 模块3   pandas基础
    • 4.1 pandas常用类
    • 4.2 DataFrame基础操作
    • 4.3 其他数据类型操作
    • 4.4 小结
    • 4.5 习题与实训
    • 4.6 练习题
  • 5 模块4 pandas进阶
    • 5.1 数据读取与写出
    • 5.2 DataFrame进阶
    • 5.3 数据准备
    • 5.4 小结
    • 5.5 习题与实训
    • 5.6 练习习题及解答(参考)
  • 6 模块5 Matplotlib基础绘图
    • 6.1 Matplotlib绘图基础
    • 6.2 分析特征关系常用图形
    • 6.3 分析特征内部数据状态常用图形
    • 6.4 小结
    • 6.5 习题与实训
  • 7 模块6 机器学习库 scikit-learn
    • 7.1 数据准备
    • 7.2 降维
    • 7.3 分类
    • 7.4 回归
    • 7.5 聚类
    • 7.6 模型选择
    • 7.7 小结
    • 7.8 习题与实训
  • 8 模块7 餐饮企业综合分析
    • 8.1 (案例)餐饮企业分析需求
    • 8.2 数据准备
    • 8.3 使用K-means算法进行客户价值分析
    • 8.4 使用决策树算法实现餐饮客户流失预测
    • 8.5 小结
    • 8.6 习题与实训
  • 9 模块8  通信运营商客户流失分析与预测
    • 9.1 通信运营商客户流失分析需求
    • 9.2 数据准备
    • 9.3 特征工程
    • 9.4 使用多层感知器算法实现通信运营商 客户流失预测
    • 9.5 小结
    • 9.6 习题与实训
  • 10 学习参考资源
    • 10.1 机器学习的通俗讲解
    • 10.2 十大机器学习算法及其应用
    • 10.3 常用机器学习算法优缺点及其应用领域
    • 10.4 轻松学会 Python turtle 绘图
    • 10.5 Python 习题库
      • 10.5.1 习题1
    • 10.6 上机操作实训库
    • 10.7 面试准备题
    • 10.8 Python 程序扩展名 及发布程序时的选择
    • 10.9 计算机Python考试大纲
    • 10.10 Python  基础知识点梳理
    • 10.11 Python常用模块大全
    • 10.12 机器学习基本术语
    • 10.13 几个机器学习的成功案例
    • 10.14 60个机器学习算法应用场景实例
  • 11 章节测验(必测)
    • 11.1 测验一
    • 11.2 测验二
    • 11.3 测验三
    • 11.4 测验四
    • 11.5 测验五
    • 11.6 测验六
    • 11.7 测验七
    • 11.8 测验八
    • 11.9 测验九
    • 11.10 测验十
    • 11.11 编程专项测验
    • 11.12 填空题专项测验
    • 11.13 判断题专项测试
    • 11.14 简答题专项测试
    • 11.15 《机器学习技术》总复习
    • 11.16 书本--习题参考解答
  • 12 综合实训项目及展示
    • 12.1 项目(一)作品展示(1)
    • 12.2 项目(一)作品展示(2)
    • 12.3 团队项目实训(必作!)
帮助


1. 列出模块中的函数

import导入模块后,可使用函数dir(m)列出模块的所有函数,import是导入模块的命令,m是模块名。

例子:

1

2

3

>>>import math    

>>>dir(math)

['__doc__''__loader__''__name__''__package__''__spec__''acos''acosh''asin''asinh''atan''atan2''atanh''ceil''copysign''cos''cosh''degrees''e''erf''erfc''exp''expm1''fabs''factorial''floor''fmod''frexp''fsum''gamma''gcd''hypot''inf''isclose''isfinite''isinf''isnan''ldexp''lgamma''log''log10''log1p''log2''modf''nan''pi''pow''radians''sin''sinh''sqrt''tan''tanh''tau''trunc']

这个例子列出math模块的一些函数,以双下划线( _ _ )开头的名称用于较复杂的python编程。

2.查看完整的python内置函数清单

查看完整的python内置函数清单,可在提示符后输入 >>>dir(_ _builtins_ _)

例子:

1

2

3

>>> dir(__builtins__)

 

['ArithmeticError''AssertionError''AttributeError''BaseException''BlockingIOError''BrokenPipeError''BufferError''BytesWarning''ChildProcessError''ConnectionAbortedError''ConnectionError''ConnectionRefusedError''ConnectionResetError''DeprecationWarning''EOFError''Ellipsis''EnvironmentError''Exception''False''FileExistsError''FileNotFoundError''FloatingPointError''FutureWarning''GeneratorExit''IOError''ImportError''ImportWarning''IndentationError''IndexError''InterruptedError''IsADirectoryError''KeyError''KeyboardInterrupt''LookupError''MemoryError''ModuleNotFoundError''NameError''None''NotADirectoryError''NotImplemented''NotImplementedError''OSError''OverflowError''PendingDeprecationWarning''PermissionError''ProcessLookupError''RecursionError''ReferenceError''ResourceWarning''RuntimeError''RuntimeWarning''StopAsyncIteration''StopIteration''SyntaxError''SyntaxWarning''SystemError''SystemExit''TabError''TimeoutError''True''TypeError''UnboundLocalError''UnicodeDecodeError''UnicodeEncodeError''UnicodeError''UnicodeTranslateError''UnicodeWarning''UserWarning''ValueError''Warning''WindowsError''ZeroDivisionError''_''__build_class__''__debug__''__doc__''__import__''__loader__''__name__''__package__''__spec__''abs''all''any''ascii''bin''bool''bytearray''bytes''callable''chr''classmethod''compile''complex''copyright''credits''delattr''dict''dir''divmod''enumerate''eval''exec''exit''filter''float''format''frozenset''getattr''globals''hasattr''hash''help''hex''id''input''int''isinstance''issubclass''iter''len''license''list''locals''map''max''memoryview''min''next''object''oct''open''ord''pow''print''property''quit''range''repr''reversed''round''set''setattr''slice''sorted''staticmethod''str''sum''super''tuple''type''vars''zip']

3. 查看某个函数的文档帮助信息

可以用函数help(函数)来查看某个函数的文档帮助信息。

例子:

1

2

3

4

5

6

7

8

9

>>>help(sum)

 

Help on built-in function sum in module builtins:

 

sum(iterable, start=0/)   

       

    Return the sum of a 'start' value (default: 0) plus an iterable of numbers      When the iterable is empty, return the start value.    

       

    This function is intended specifically for use with numeric values and may    reject non-numeric types.

可以直接在提示符下输入help(),然后输入某个模块或函数名得到详细的帮助信息。

CGI

CGI 目前由NCSA维护,NCSA定义CGI如下:

CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP服务器,提供同客户端HTML页面的接口。

CGI程序可以是Python脚本、Perl脚本、Shell脚本、C或者C++程序等。

服务器

在你进行CGI编程前,确保您的Web服务器支持CGI及已经配置了CGI的处理程序。

所有的HTTP服务器执行CGI程序都保存在一个预先配置的目录。这个目录被称为CGI目录,并按照惯例,它被命名为/var/www/cgi-bin目录。

CGI文件的扩展名为.cgipython也可以使用.py扩展名。

默认情况下,Linux服务器配置运行的cgi-bin目录中为/var/www

如果想指定的其他运行CGI脚本的目录,可以修改httpd.conf配置文件,如下所示:

1

2

3

4

5

6

7

8

9

<Directory"/var/www/cgi-bin">

Allow Override None

Options ExecCGI

Order allow,deny

Allow from all

</Directory>

<Directory"/var/www/cgi-bin">

Options All

</Directory>

程序

使用Python创建第一个CGI程序,文件名为hello.py,文件位于/var/www/cgi-bin目录中,内容如下,修改文件的权限为755

1

2

3

4

5

6

7

8

9

10

#!/usr/bin/env python

print("Content-type:text/html\r\n\r\n")

print("<html>")

print("<head>")

print("")

print("</head>")

print("<body>")

print("<h2>Hello World! This is my first CGI program</h2>")

print("</body>")

print("</html>")

以上程序在浏览器访问显示结果如下:

1

Hello World! This is my first CGI program

这个的hello.py脚本是一个简单的Python脚本,脚本第一的输出内容"Content-type:text/html\r\n\r\n"发送到浏览器并告知浏览器显示的内容类型为"text/html"

环境变量

所有的CGI程序都接收以下的环境变量,这些变量在CGI程序中发挥了重要的作用: [6] 

变量名

描述

CONTENT_TYPE

这个环境变量的值指示所传递来的信息的MIME类型。目前,环境变量CONTENT_TYPE一般都是:application/x-www-form-urlencoded,他表示数据来自于HTML表单。

CONTENT_LENGTH

如果服务器与CGI程序信息的传递方式是POST,这个环境变量即使从标准输入STDIN中可以读到的有效数据的字节数。这个环境变量在读取所输入的数据时必须使用。

HTTP_COOKIE

客户机内的 COOKIE 内容。

HTTP_USER_AGENT

提供包含了版本数或其他专有数据的客户浏览器信息。

PATH_INFO

这个环境变量的值表示紧接在CGI程序名之后的其他路径信息。它常常作为CGI程序的参数出现。

QUERY_STRING

如果服务器与CGI程序信息的传递方式是GET,这个环境变量的值即使所传递的信息。这个信息经跟在CGI程序名的后面,两者中间用一个问号'?'分隔。

REMOTE_ADDR

这个环境变量的值是发送请求的客户机的IP地址,例如上面的192.168.1.67。这个值总是存在的。而且它是Web客户机需要提供给Web服务器的唯一标识,可以在CGI程序中用它来区分不同的Web客户机。

REMOTE_HOST

这个环境变量的值包含发送CGI请求的客户机的主机名。如果不支持你想查询,则无需定义此环境变量。

REQUEST_METHOD

提供脚本被调用的方法。对于使用 HTTP/1.0 协议的脚本,仅 GET POST 有意义。

SCRIPT_FILENAME

CGI脚本的完整路径

SCRIPT_NAME

CGI脚本的的名称

SERVER_NAME

这是你的 WEB 服务器的主机名、别名或IP地址。

SERVER_SOFTWARE

这个环境变量的值包含了调用CGI程序的HTTP服务器的名称和版本号。例如,上面的值为Apache/2.2.14(Unix)

以下是一个简单的CGI脚本输出CGI的环境变量:

1

2

3

4

5

6

#!/usr/bin/python

import os

print"Content-type:text/html\r\n\r\n"

print"Environment"

for param in os.environ.keys():

    print"<b>%20s</b>:%s<\br>" %(param,os.environ[param])

特点

编辑

优点

简单Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。

易学Python极其容易上手,因为Python有极其简单的说明文档 [9]  

速度快:Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快。 [6] 

免费、开源PythonFLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。

高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。

可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括LinuxWindowsFreeBSDMacintoshSolarisOS/2AmigaAROSAS/400BeOSOS/390z/OSPalm OSQNXVMSPsionAcom RISC OSVxWorksPlayStationSharp ZaurusWindows CEPocketPCSymbian以及Google基于linux开发的android平台。

解释性:一个用编译性语言比如CC++写的程序可以从源文件(即CC++语言)转换到一个你的计算机使用的语言(二进制代码,即01)。这个过程通过编译器和不同的标记、选项完成。

运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行 程序。

在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。

面向对象Python既支持面向过程的编程也支持面向对象的编程。在面向过程的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在面向对象的语言中,程序是由数据和功能组合而成的对象构建起来的。

可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用CC++编写,然后在Python程序中使用它们。

可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。

丰富的库Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试线程、数据库、网页浏览器、CGIFTP、电子邮件、XMLXML-RPCHTMLWAV文件、密码系统、GUI图形用户界面)、Tk和其他与系统有关的操作。这被称作Python功能齐全理念。除了标准库以外,还有许多其他高质量的库,如wxPythonTwistedPython图像库等等。

规范的代码:Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。

缺点

单行语句和命令行输出问题:很多时候不能将程序连写成一行,如import sys;for i in sys.path:print i。而perlawk就无此限制,可以较为方便的在shell下完成简单程序,不需要如Python一样,必须将程序写入一个.py文件。

独特的语法

这也许不应该被称为局限,但是它用缩进来区分语句关系的方式还是给很多初学者带来了困惑。即便是很有经验的Python程序员,也可能陷入陷阱当中。

运行速度慢:这里是指与CC++相比。