python学习笔记——第九章

第九章 Python计算生态概览

 

一、从数据处理到人工智能

数据表示->数据清洗->数据统计->数据可视化->数据挖掘->人工智能

- 数据表示:采用合适方式用程序表达数据

- 数据清理:数据归一化、数据转换、异常值处理

- 数据统计:数据的概要理解,数量、分布、中位数等

- 数据可视化:直观展示数据内涵的方式

- 数据挖掘:从数据分析获得知识,产生数据外的价值

- 人工智能:数据/语言/图像/视觉等方面深度分析与决策

二、实例15: 霍兰德人格分析雷达图

    #HollandRadarDraw

    import numpy as np

    import matplotlib.pyplot as plt

    import matplotlib

    matplotlib.rcParams['font.family']='SimHei'

    radar_labels = np.array(['研究型(I)','艺术型(A)','社会型(S)',\

                             '企业型(E)','常规型(C)','现实型(R)']) #雷达标签

    nAttr = 6

    data = np.array([[0.40, 0.32, 0.35, 0.30, 0.30, 0.88],

                     [0.85, 0.35, 0.30, 0.40, 0.40, 0.30],

                     [0.43, 0.89, 0.30, 0.28, 0.22, 0.30],

                     [0.30, 0.25, 0.48, 0.85, 0.45, 0.40],

                     [0.20, 0.38, 0.87, 0.45, 0.32, 0.28],

                     [0.34, 0.31, 0.38, 0.40, 0.92, 0.28]]) #数据值

    data_labels = ('艺术家', '实验员', '工程师', '推销员', '社会工作者','记事员')

    angles = np.linspace(0, 2*np.pi, nAttr, endpoint=False)

    data = np.concatenate((data, [data[0]]))

    angles = np.concatenate((angles, [angles[0]]))

    fig = plt.figure(facecolor="white")

    plt.subplot(111, polar=True)

    plt.plot(angles,data,'o-', linewidth=1, alpha=0.2)

    plt.fill(angles,data, alpha=0.25)

    plt.thetagrids(angles*180/np.pi, radar_labels,frac = 1.2)

    plt.figtext(0.52, 0.95, '霍兰德人格分析', ha='center', size=20)

    legend = plt.legend(data_labels, loc=(0.94, 0.80), labelspacing=0.1)

    plt.setp(legend.get_texts(), fontsize='large')

    plt.grid(True)

    plt.savefig('holland_radar.jpg')

    plt.show()

 

 

 

三、Web解析到网络空间

Python库之网络爬虫

1.Requests: 最友好的网络爬虫功能库

    - 提供了简单易用的类HTTP协议网络爬虫功能

- 支持连接池、SSLCookiesHTTP(S)代理等

- Python最主要的页面级网络爬虫功能库

2.Scrapy: 优秀的网络爬虫框架

- 提供了构建网络爬虫系统的框架功能,功能半成品

- 支持批量和定时网页爬取、提供数据处理流程等

- Python最主要且最专业的网络爬虫框架

3.pyspider: 强大的Web页面爬取系统

- 提供了完整的网页爬取系统构建功能

- 支持数据库后端、消息队列、优先级、分布式架构等

- Python重要的网络爬虫类第三方库

Python库之Web信息提取

1.Beautiful Soup: HTMLXML的解析库

2.Re: 正则表达式解析和处理功能库

3.Python-Goose: 提取文章类型Web页面的功能库

Python库之Web网站开发

1.Django: 最流行的Web应用框架

2.Pyramid: 规模适中的Web应用框架

3.Flask: Web应用开发微框架

Python库之网络应用开发

1.WeRoBot: 微信公众号开发框架

2.aip: 百度AI开放平台接口

3.MyQR: 二维码生成第三方库

四、从人机交互到艺术设计

Python库之图形用户界面

1.PyQt5: Qt开发框架的Python接口

  2.wxPython: 跨平台GUI开发框架

3.PyGObject: 使用GTK+开发GUI的功能库

  

Python库之游戏开发

1.PyGame: 简单的游戏开发功能库

2.Panda3D: 开源、跨平台的3D渲染和游戏开发库

  3.cocos2d: 构建2D游戏和图形界面交互式应用的框架

Python库之虚拟现实

1.VR Zero: 在树莓派上开发VR应用的Python

2.pyovr: Oculus RiftPython开发接口

3.Vizard: 基于Python的通用VR开发引擎

Python库之图形艺术

1.Quads: 迭代的艺术

  2.asciiart: ASCII艺术库

  3.turtle: 海龟绘图体系

五、实例16: 玫瑰花绘制

    #RoseDraw.py

    import turtle as t

    # 定义一个曲线绘制函数

    def DegreeCurve(n, r, d=1):

        for i in range(n):

            t.left(d)

            t.circle(r, abs(d))

    # 初始位置设定

    s = 0.2 # size

    t.setup(450*5*s, 750*5*s)

    t.pencolor("black")

    t.fillcolor("red")

    t.speed(100)

    t.penup()

    t.goto(0, 900*s)

    t.pendown()

    # 绘制花朵形状

    t.begin_fill()

    t.circle(200*s,30)

    DegreeCurve(60, 50*s)

    t.circle(200*s,30)

    DegreeCurve(4, 100*s)

    t.circle(200*s,50)

    DegreeCurve(50, 50*s)

    t.circle(350*s,65)

    DegreeCurve(40, 70*s)

    t.circle(150*s,50)

    DegreeCurve(20, 50*s, -1)

    t.circle(400*s,60)

    DegreeCurve(18, 50*s)

    t.fd(250*s)

    t.right(150)

    t.circle(-500*s,12)

    t.left(140)

    t.circle(550*s,110)

    t.left(27)

    t.circle(650*s,100)

    t.left(130)

    t.circle(-300*s,20)

    t.right(123)

    t.circle(220*s,57)

    t.end_fill()

    # 绘制花枝形状

    t.left(120)

    t.fd(280*s)

    t.left(115)

    t.circle(300*s,33)

    t.left(180)

    t.circle(-300*s,33)

    DegreeCurve(70, 225*s, -1)

    t.circle(350*s,104)

    t.left(90)

    t.circle(200*s,105)

    t.circle(-500*s,63)

    t.penup()

    t.goto(170*s,-30*s)

    t.pendown()

    t.left(160)

    DegreeCurve(20, 2500*s)

    DegreeCurve(220, 250*s, -1)

    # 绘制一个绿色叶子

    t.fillcolor('green')

    t.penup()

    t.goto(670*s,-180*s)

    t.pendown()

    t.right(140)

    t.begin_fill()

    t.circle(300*s,120)

    t.left(60)

    t.circle(300*s,120)

    t.end_fill()

    t.penup()

    t.goto(180*s,-550*s)

    t.pendown()

    t.right(85)

    t.circle(600*s,40)

    # 绘制另一个绿色叶子

    t.penup()

    t.goto(-150*s,-1000*s)

    t.pendown()

    t.begin_fill()

    t.rt(120)

    t.circle(300*s,115)

    t.left(75)

    t.circle(300*s,100)

    t.end_fill()

    t.penup()

    t.goto(430*s,-1070*s)

    t.pendown()

    t.right(30)

    t.circle(-600*s,35)

    t.done()

猜你喜欢

转载自www.cnblogs.com/daisy-xy/p/11923198.html