Python3从零入门机器学习:第一章 简介

原文

原文竟然包含波兰语,看不懂的只能Google翻译

文章目录

1.安装Python

1.1 系统要求

1.2 环境设置

1.2.1 Windows

  • 保留默认选项
  • 编写PATH(重要!)
  • 使用cmd运行Python
  • 记住安装Python的目录的路径
  • 检查GIT和PyCharm的默认选项(记得与.py文件关联)
  • 使用python --version命令验证

1.2.2 macOS

  • macOS应该已经安装了Python
  • 您可以从官方网站安装最新版本的Python
  • 或者,您可以使用brew(免费包管理器)
  • 在从AppStore安装最新版本的Xcode之前,brew能够为您完成
  • 安装运行以下命令:
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • 安装后:
$ brew install python3
  • 从terminal终端运行
  • 使用python --version命令验证

1.2.3 Linux

  • 几乎所有Linux发行版都安装了Python
  • 要安装较新版本,请使用包管理器:
    • apt-get - Debian, Ubuntu
    • yum - Suse
    • emerge - Gentoo
    • rpm - Redhat, Fedora
  • 从terminal终端运行
  • 使用python --version命令验证

2.书中涉及内容

2.1 鸢尾数据集

2.1.1 鸢尾物种

鸢尾物种有杂色鸢尾、山鸢尾、维吉尼亚鸢尾

在这里插入图片描述

2.1.2 鸢尾数据集

在这里插入图片描述

2.1.3 鸢尾网格

在这里插入图片描述

2.2 Ehlo World!

在编程课程中,我们总是从众所周知的“Hello World”开始。 然而,这一次,我们将从’Ehlo World’开始。这不是一个错误。 这是SMTP1服务器的欢迎语。 在本书中,您将看到几个IT笑话和旧的笑话

2.3 地址

此书中用到的地址

姓名 街道 城市 邮编 国家
Kosmodrom Bajkonur Wochod Bajkonur 101503 Kyzyłordyński Kazachstan
Johnson Space Center 2101 E NASA Pkwy Huston 77058 Texas USA
Kennedy Space Center None Cape Canaveral 32899 Floryda USA
NASA Jet Propulsion Laboratory 4800 Oak Grove Dr Pasadena 91109 California USA
NASA Armstrong Research Center 2825 E Ave P Palmdale 93550 California USA
ESA EAC Linder Hoehe Köln 51147 North Rhine-Westphalia Germany

2.4 日期和时区

此书中用到的日期

扫描二维码关注公众号,回复: 5446579 查看本文章
Date Time Timezone Description
1957-10-04 19:28:34 UTC Sputnik launch
1961-04-12 06:07:00 UTC Yuri Gagarnin’s launch
1969-07-21 14:56:15 UTC Apollo 11 Neil Armstrong’s first step on the Moon

2.5 主要角色

2.5.1 宇航员

2.5.1.1 Pan Twardowski

在这里插入图片描述

2.5.1.2 José Jiménez

在这里插入图片描述

2.5.1.3 Иван Иванович

在这里插入图片描述

2.5.1.4 Melissa Lewis

在这里插入图片描述

2.5.1.5 Ryan Stone

在这里插入图片描述

2.5.1.6 Mark Watney

在这里插入图片描述

2.5.1.7 Matt Kowalski

在这里插入图片描述

2.5.1.8 Alex Vogel

在这里插入图片描述

2.5.2 船员

2.5.2.1 National Geographic’s Mars

在这里插入图片描述
来自National Geographic’s Mars的船员有: Robert Foucault (左上), Javier Delgado (正上), Amelie Durand (右上), Hana Seung (左下), Ben Sawyer (正下), Marta Kamen (右下)

2.5.2.2 Martian Movie

在这里插入图片描述
来自Martian Movie的船员有: Melissa Lewis (左上), Alex Vogel (正上), Mark Watney (右上), Chris Beck (左下), Beth Johanssen (正下), Rick Martinez (右下)

3.关于Python语言

3.1 Python是什么?

在这里插入图片描述

3.1.1 Python作为一门语言

  • 图灵完全的通用语言2
  • 跨平台
  • 自动内存分配和GC3的动态语言
  • 代码的可读性和简单性很重要
  • 缩进很重要
  • 一切都是对象,但你也可以编写函数

3.1.2 Python作为一个生态

  • 机器学习和数据科学中的标准语言
  • 非常好的标准系统库
  • 拥有许多开源库的巨大生态系统
  • 由非盈利Python软件基金会创建的开源软件

3.2 选哪个版本?

  • 最新的Python3

3.2.1 Python3新变化(对比Python2)

  • 所有字符串都是Unicode4
  • 标准库命名的变化
  • 在Python3中print()是函数而不是关键字
  • 新的字符串格式

3.2.2 为什么不用Python2?

  • Python2不再更新
  • Python2.7是2.x的最新版
  • 再也不会有Python2.8(PEP 404)
  • Python2.7的BUG修复只会持续到2020(PEP 372)

3.3 脚本

3.3.1 文件类型和扩展名

  • Python文件用.py作为扩展名
  • 编译好的文件在__pycache__目录下
  • Python也使用其他扩展名:
Extension Description
.pyc 编译好的源代码(字节码)
.pyd 编译好的Windows DLL文件
.pyw 编译好的Windows文件,可以用pythonw.exe执行
.pyx 用于C/C++下运行的cPythona源代码
.pyz zipapp压缩存档。 从Python3.5开始

3.3.2 简单示例程序

print('Ehlo World!')

3.3.3 声明解释器(Interpreter)

  • 用单独的脚本#!/usr/bin/env python3声明解释器
#!/usr/bin/env python3

print('Ehlo World!')

3.3.4 系统环境变量PATH

  • 在安装Python时,将其可执行文件添加到系统$PATH路径中

3.3.5 系统环境变量PYTHON_PATH

  • Python会在$PYTHON_PATH路径下搜索库和模块
  • $PYTHON_PATHsys.path的基础

3.4 Python控制台(REPL)

  • Read–Eval–Print Loop:“读取-求值-输出”循环
  • 快速测试和评估代码
  • 每一行以>>>开头
  • 行以...延续
  • 运行结果在下方打印
  • 在python3 terminal终端下打开REPL
$ python3

Python 3.7.0 (default, Aug 22 2018, 15:22:33)
[Clang 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

>>> print('Ehlo World!')
Ehlo World!

注意:
在文档和书籍中,你可能会找到>>>...在代码清单行的开头

if True:
    print(True)
else:
    print(False)

3.5 Jupyter

  • 开源web应用程序REPL
  • 在机器学习和数据科学领域非常流行
  • 创建和共享包含实时代码、等式、可视化和叙述性文本的文档
  • 用途包括:数据清洗与转换、数值模拟、统计建模、数据可视化、机器学习等

4 集成开发环境IDE

4.1 IDE是什么?

  • 重构
  • 语法帮助和突出显示
  • 代码提示和检查
  • VCS5支持
  • 虚拟环境支持
  • Debug6
  • 拼写检查
  • 运行代码和检查
  • 文件范围和视图
  • 数据库浏览器
  • 支持测试(doctest, unittest)
  • 跳转到异常行

4.2 如何选择?

  • 你使用什么IDE并不重要!
  • 编辑Python脚本只需要记事本或Jupiter
  • 随着项目的复杂性和文件数量的增长,IDE会非常有用
  • 一个好的IDE能帮助你重构,代码提示,调试和进行版本控制
  • PyCharm有两个付费和免费版本,免费版本对我们来说足够了
  • 一个有趣的替代方案可以是PyDev,一个Eclipse环境下的插件

4.3 哪一个是最好的?

4.3.1 开源

  1. PyCharm社区版
  2. PyDev
  3. Spyder
  4. Atom
  5. Jupyter Notebook
  6. Rodeo

4.3.2 收费

  1. PyCharm专业版
  2. Visual Studio

4.4 PyCharm

4.4.1 快捷键

快捷键 动作
Ctrl+/ 注释多行
Alt+F12 打开终端Terminal
Shift+F6 重构/重命名
Tab 缩进(可同时多行)
Shift+Tab 删除缩进(可同时多行)
Alt+1 显示文件抽屉
Ctrl+G 跳至某行
Ctrl+F 在文件中搜索
Ctrl+R 在文件中替换

4.5 作业

4.5.1 使用纯Python创建项目

  • 要写入的代码行:0行
  • 预计完成时间:2分钟
  1. 在IDE中创建项目
  2. 选择“Pure Python”(仅在Pycharm Professional中可用)
  3. 展开Project Interpreter列表并将其设置为使用“Virtualenv”
  4. 提示:确保您使用的是Python 3.7或更高版本
  5. 创建项目后,创建一个以你的姓名命名的目录
  6. 提示:本书最后将创建所有任务的解决方案

Virtualenv7

4.5.2 在GIT中创建项目

  • 要写入的代码行:0行
  • 预计完成时间:2分钟
  1. 在IDE中创建项目
  2. 使用“从VCS创建”选项(即版本控制)
  3. 提示:确保您使用的是Python 3.7或更高版本
  4. 创建.gitignore文件
  5. 输入.idea行/到文件
  6. 创建项目后,创建一个以你的姓名命名的目录
  7. 提示:本书最后将创建所有任务的解决方案

4.5.3 检查Python版本

  • 文件名:python_version.py
  • 要写入的代码行:0行
  • 预计完成时间:5分钟
  1. 创建一个名为python_version.py的脚本(脚本名称将始终输入“关于”部分)
  2. 该文件应包含以下内容:
import sys

print(sys.version)
  1. 在IDE中运行它(菜单 Run - >Run… - >脚本名称)
  2. 安装了什么Python版本?

为什么这样做

  • Python工作吗
  • Python版本是什么
  • 使用打印
  • 能够运行脚本
  • 从书中寻找任务的解决方案

4.5.5 了解你的IDE

  • 要写入的代码行:0行
  • 预计完成时间:10分钟
  1. 如何在IDE中执行以下操作:
    • Run运行…
    • 在Console中运行
    • Debug调试…
    • Python Console
    • Terminal
    • 全屏
    • 无干扰模式
    • 格式化代码
    • 作用域
  2. 每个选项的快捷键是什么?
  3. Run和Debug的不同之处?
  4. Python Console和Terminal有什么区别
  5. Free Mode与Full Screen的区别
  6. 设置作用域来隐藏Virtualenv中的目录

4.5.6 拼写检查

  • 要写入的代码行:0行
  • 预计完成时间:3分钟
  1. 安装’Hunspell’插件
  2. 从https://github.com/LibreOffice/dictionaries下载波兰语的.dic和.aff
  3. 配置IDE以使用此字典

为什么这样做

  • 使用IDE
  • IDE配置

5 语法

5.1 缩进代替括号

  • Python使用缩进代替括号
  • 建议使用4空格缩进,不用Tab
  • Python会抛出IndentationError异常
  • 在同一层次上缩进的代码属于一个块:
if True:
    print('First line of the true statement')
    print('Second line of the true statement')
    print('Third line of the true statement')
else:
    print('This is false')

5.2 行结束

  • 每行结束没有分号(;
  • 可以用\r\n\n:
print('Hello!\nHow are you?')
print('Hello!\r\nHow are you?')

5.3 注释

5.3.1 行注释

  • 缩进必须与块缩进处于同一级别
  • 拼凑 #、空格、注释:
# José Jiménez says hello
print('My name... José Jiménez')

5.3.2 行内注释

  • 源代码、两个空格、#、空格、注释
print('My name... José Jiménez')  # José Jiménez says hello

5.3.3 多行注释

  • 三个单引号
  • 三个双引号(更常见)
  • '''"""作用相同
"""
We choose to go to the Moon!
We choose to go to the Moon in this decade and do the other things,
not because they are easy, but because they are hard;
because that goal will serve to organize and measure the best of our energies and skills,
because that challenge is one that we are willing to accept, one we are unwilling to postpone,
and one we intend to win, and the others, too.
"""

5.3.4 Docstring

  • Docstring是一个多行注释,放在:
    • 文件/模块
    • 方法/函数
  • 可通过访问__doc__查看对象属性
  • 用于help()函数生成帮助文档
def apollo_dsky(noun, verb):
    """
    This is the Apollo Display Keyboard
    It takes noun and verb
    """
    print(f'Program selected. Noun: {noun}, verb: {verb}')
  • 用于doctest
def add(a, b):
    """
    Sums two numbers.

    >>> add(1, 2)
    3
    """
    return a + b

doctest8

5.3.5 注释所有代码

  • 绝不!
  • 使用版本控制来代替,例如git blame
  • IDE有本地记录(修改记录),你可以比较文件不同

5.4 变量和常量

  • NameError发生在使用未定义变量时
  • AttributeError发生在不能赋值给变量时
  • 命名大小写敏感(区分大小写)
name = 'José Jiménez'
NAME = 'Иван Иванович'
Name = 'Pan Twardowski'

5.4.1 变量声明

  • 小写字母
name = 'José Jiménez'
  • 下划线连接
first_name = 'José'
last_name = 'Jiménez'

5.4.2 常量声明

  • 大写字母
PATH = '/etc/passwd'
  • 下划线连接
FILE_NAME = '/etc/shadow'

5.4.3 变量与常量比较

  • 命名大小写敏感(区分大小写)
name = 'José Jiménez'
NAME = 'Иван Иванович'
Name = 'Pan Twardowski'
  • Python不区分变量和常量
  • Python允许你改变常量,但这不是个好习惯(好的IDE会提示你)
NAME = 'José Jiménez'
NAME = 'Иван Иванович'

5.5 print()

  • print()在最后隐含'\n'(即打印自动换行)
  • 在屏幕上打印
print('My name... José Jiménez')
# My name... José Jiménez
  • 变量替换
name = 'José Jiménez'

print(f'My name... {name}')
# My name... José Jiménez
  • 特殊字符
name = 'José Jiménez'

print(f'My name...\n\t{name}')
# My name...
#     José Jiménez

注意:
更多关于打印格式

5.6 作业

5.6.1 初见Python

  • 文件名:syntax_python.py
  • 要写入的代码行:2行 + 2行注释
  • 预计完成时间:5分钟
  1. 创建Python脚本
  2. 添加解释器声明
  3. 在解释器声明底下添加程序描述的多行注释
  4. 声明变量name并将值设为你的名字
  5. 给变量name添加行内注释This is my name
  6. 打印变量
  7. print的下一行添加行注释,并显示预期输出
  8. 运行脚本

为什么这样做

  • 创建Python脚本
  • 变量声明
  • 代码注释
  • 显示变量的值

线索print()


  1. SMTP,简单邮件传输协议(Simple Message Transfer Protocol) ↩︎

  2. 图灵完全是指在可计算性理论中,编程语言或任意其他逻辑系统等可以用于通用图灵机的计算能力。 ↩︎

  3. GC,Garbage collection,垃圾回收机制。在计算机科学中是一种自动的记忆体管理机制。当一个电脑上的动态记忆体不再需要时,就应该予以释放,以让出记忆体,这种记忆体资源管理,称为垃圾回收。 ↩︎

  4. Unicode,万国码。是计算机科学领域里的一项业界标准。它对世界上大部分的文字系统进行了整理、编码,使得电脑可以用更为简单的方式来呈现和处理文字。 ↩︎

  5. Version control system,版本控制。 ↩︎

  6. Debug,调试以排除故障。 ↩︎

  7. Virtualenv,虚拟环境,用来为一个应用创建一套“隔离”的Python运行环境。 ↩︎

  8. doctest是Python标准库模块,允许根据标准Python解释器shell的输出轻松生成测试,并将其剪切和粘贴到docstring中。 ↩︎

猜你喜欢

转载自blog.csdn.net/lly1122334/article/details/86418255