4708|3

64

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

一起读《机器学习算法与实现 —— Python编程与应用实例》- 第2章 Python语言 [复制链接]

学编程的应该都学过Python吧,可谓是最实用的语言了。但是为什么机器学习选择了Python语言,而不去选择其他语言呢?还有Python语言我们都应该掌握哪些基础呢?想知道这些问题,那我们这章,就跟随布树辉老师一起来学习下Python!

 

配套学习资源:

在线视频:https://www.bilibili.com/video/BV1oZ4y1N7ei/?p=9

讲义:https://gitee.com/pi-lab/machinelearning_notebook

 

一、为什么选择Python

Python的设计哲学是优雅、明确、简单,且与其他编程语言相比,初学者更容易上手。

Python是一种解释型的、高级的、通用的、面向对象的动态语言,主要特点包括:简单易用,学习成本低;拥有大量的标准库和第三方库;开源且免费试用。

Python拥有良好的生态、较低的学习门口、方便的开发体验,已成为大众最喜欢的语言之一。

 

二、安装Python环境

由于Python的库较多,且依赖关系比较复杂,Python一般通过包管理系统来管理计算机中安装的Python软件包。目前,主要的包管理系统有pip和Anaconda。为了让初学者快速地使用Python,本书主要以Python为例介绍如何安装。

注意:本书的安装说明中有较多的细节,可能与读者的系统不适配,因此可能会遇到问题,遇到问题时,请通过搜索引擎查找解决办法,以提高自己解决问题的能力。

 

Windows安装

这里我只例举Windows下的安装:

由于网络下载速度较慢,因此推荐使用镜像来提高下载的速度。镜像的使用方法可以参考:Anaconda镜像的说明文档

  1. 在下列镜像网站找到适合自己的安装文件,然后下载

例如: https://mirrors.bfsu.edu.cn/anaconda/archive/Anaconda3-2020.11-Windows-x86_64.exe

  1. 按照说明,把Anaconda安装好。

登录anaconda的官网下载,anaconda是一个集成的工具软件不需要我们再次下载。

anaconda官网

   

输入你的邮箱注册

   

点击立即下载,选择windows版本

直接双击安装,下一步就好了。

 

 

 

windows搜索框里找一下anaconda prompt

 

打开,出现(base),安装成功。

 

 

设置软件源

各系统都可以通过修改用户目录下的.condarc文件。

Windows 用户无法直接创建名为.condarc的文件,可先执行conda config --set show_channel_urls yes生成该文件之后再修改。然后在命令行输入notepad .condarc将下面的内容拷贝到文本编辑器里面。

channels: 
- defaults 
show_channel_urls: true 
default_channels: 
- https://mirrors.bfsu.edu.cn/anaconda/pkgs/main 
- https://mirrors.bfsu.edu.cn/anaconda/pkgs/r 
- https://mirrors.bfsu.edu.cn/anaconda/pkgs/msys2 
custom_channels: 
conda-forge: https://mirrors.bfsu.edu.cn/anaconda/cloud msys2:https://mirrors.bfsu.edu.cn/anaconda/cloud 
bioconda: https://mirrors.bfsu.edu.cn/anaconda/cloud 
menpo: https://mirrors.bfsu.edu.cn/anaconda/cloud 
pytorch: https://mirrors.bfsu.edu.cn/anaconda/cloud 
pytorch-lts: https://mirrors.bfsu.edu.cn/anaconda/cloud 
simpleitk: https://mirrors.bfsu.edu.cn/anaconda/cloud

 

设置pip源

 pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple/

 

新建conda环境

 conda create -n machinelearning python=3.9

 

安装常用Python库

conda install jupyter scipy numpy sympy matplotlib pandas scikit-learn

 

安装PyTorch

GPU 版本

 # 访问 https://pytorch.org/,查最新的安装命令 
# 例如 pytorch-cuda=11.6 
# 安装cudatoolkitconda 
install cudatoolkit 
# 安装最新版本 
conda install pytorch torchvision torchaudio pytorch-cuda -c pytorch -c nvidia 
# 安装特定版本 
#conda install pytorch torchvision torchaudio pytorch-cuda=11.6 -c pytorch -c nvidia

CPU 版本

conda install pytorch -c pytorch 
pip3 install torchvision

检测GPU是否在PyTorch中可用:

python 
>>> import torch 
>>> torch.cuda.is_available()

 

Conda使用技巧

Conda创建自己的环境

conda create -n <your_env> python=x.x 
# exampleconda create -n machinelearning python=3.9

上面的python=x.x中的x.x对应自己系统中的Python版本

 

Conda怎么激活自己的环境

conda activate <your_env> 
# example conda activate machinelearning

 

Conda常用命令

# 帮助命令 
conda -h 
conda help 
# 配置频道(已有) 
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/ 
# 退出当前环境 
conda deactivate 
# 克隆环境 
conda create -n BBB --clone AAA 
# 查看基本信息 
conda infoconda info -h 
# 查看当前存在环境 
conda env listconda info --envs 
# 删除环境 
conda remove -n <your_env> --all

 

三、Jupyter Notebook

本在线讲义使用Jupyter Notebook编写,因此首先介绍Jupter Notebook的使用方法。使用Notebook,可以方便的将理论描述、程序、数据可视化等集成在一个多媒体页面,方便大家的学习。

Jupyter notebook 是一种 Web 应用,它能让用户将说明文本、数学方程、代码和可视化内容全部组合到一个易于共享的文档中,非常方便研究和教学,让编写、阅读变得一目了然。Jupyter notebook特别适合做科学计算、数据处理,其用途可以包括数据清理和探索、可视化、机器学习和大数据分析。

 

Jupyter 安装

安装Jupyter最简单的方法就是使用 Anaconda,其发行版附带了 Jupyter Notebook。在 conda 环境下安装 Jupyter Notebook 可以使用

conda install jupyter

当然,也可以通过pip来安装

pip install jupyter

安装后便可在终端中输入以下命令启动:

# jupyter notebook 
或者 
# jupyter-notebook

 

 

常用操作

 

点击右上角的新建一个文件

 

输入以下代码

print("Hello Machine Learning!")

ctrl+Enter运行后可看到打印如下

 

ctrl+s保存

 

四、Python基础

可能很多人都已经学习过Python,我们这里就做一个复习,如果有不会的部分,可以在网上搜索自学!

这里把布树辉老师的学习讲义放到这里,方便初学者学习:https://gitee.com/pi-lab/machinelearning_notebook/blob/master/0_python/1_Basics.ipynb

 

导入库与Python之禅

 #导入库 
import os 
os.listdir('.')

 

变量

用于表示某个对象或值的名称成为变量。

 

运算符

1.算术运算符

算术运算符即数学运算符,用来对数字进行数学运算,如加、减、乘、除。

 

2.关系运算符

关系运算符也称比较运算符,用于对常量、变量或表达式的结果进行大小比较。

 

内置函数

1.range()函数

range()函数输出指定范围内的整数。他还可通过指定特定范围内的两个数字之差来生成一个序列,元素以迭代容器的形式返回。

 

2.int()函数

int()函数将字符串或浮点数转换为整数。他有两个参数输入,一个是不同数字系统中的值,另一个是它的基数。

类似的函数还有用于转换为二进制数的bin()、用于转换为浮点数的float()、返回值是当前整数对应的ASCII字符的chr()、用于获得字符的ASCII值的ord().

 

3.round()函数

round()函数将输入值四舍五入为指定的位数和最接近的整数。

 

4.type()函数与isinstance()函数

由于Python是脚本语言,变量的类型不需要事先定义,所以有时候需要判断变量的类型,这就要用到类型判断函数type(),该函数返回给定变量的类型。另外一个判断类型的函数是isinstance()函数,它判断给定的变量是否是给定的类型,若是,则返回True;这个函数还可同时检查多个类型。

 

五、print()函数

print()函数是Python的内置函数,照顾要用于打印变量的值。

 

在Python中,单引号(‘)、双引号(“”)和三引号(“”“)用于表示字符串。

  • 大部分情况下单引号用于声明一个字符。

  • 声明一行时使用双引号,声明段落/多行时使用三引号。

%s用于引用包含字符串的变量。

 

六、数据结构

数据结构是计算机存储、组织数据的方式,简单来说是指相互之间存在一种或多种特定关系的数据元素的集合。

Python中的数据结构设计的非常巧妙,使用起来非常方便,几乎绝大多数的数据结构都可以通过list,tuple,dict,string,set等表示,因此用户几乎不需要自己定义数据结构,仅仅使用Python内置的数据结构即可实现非常复杂的算法和操作。

 

列表

列表是最常用的数据结构,可以把它看作用方括号括起来的数据序列,数据之间用逗号分隔。这些数据都可以通过调用其索引值来访问。

1.1 索引

1.2 切片

1.3 列表的内置函数

1.4 复制一个列表

 

元组

元组与列表相似,但唯一大的区别是列表中的元素可以更改,而元组中的元素不能更改。

2.1 将一个元组映射到另一个元组

2.2 元组内置函数

 

集合

集合主要用于消除序列/列表中的重复数字。它还用于执行一些标准的集合操作。

3.1 内置函数

 

字符串

字符串是基于文本的有序数据,用单/双/三重引号括起来表示。

4.1 内置函数

 

词典

词典更像数据库,因为在这里你可以用用户定义的字符串索引特定的序列。

5.1 内置函数

 

七、控制流语句

一般情况下,程序按照语句编写顺序依次执行,形成标准的面向过程的结构化形式。然而,由于程序具有很强的逻辑性,有时需要根据某些条件选择性地执行某些语句或者跳过某些语句。控制流语句用于控制程序流程的选择、循环、转向、和返回等,以实现程序的各种结构。Python的流程控制语句和其他语言类似,如C语言。

 

判断语句

1.1 If

1.2 If-else

1.3 if-elif

 

循环语句

2.1 for

2.2while

2.3break

2.4continue

列表推导(List Comprehensions)

Python可以使用列表推导模式,用一行代码就可以很容易地生成所需的列表。

 

八、函数

在大部分时候,在一个算法中,需要重复执行一组语句,如果每次都重复写出来,不仅乏味而且编程效率比较低,降低程序的可读性。为了将重复的执行抽象出来,可使用函数将一组操作封装成一个整体,给一个名称和参数列表作为可变量的输入。

 

函数的参数

定义一个函数first_func()

def first_func(): 
print("Hey Jack!") 
print("Jack, How do you do?")
first_func() 
funca=first_func 
funca()

Hey Jack!

Jack, How do you do?

Hey Jack!

Jack, How do you do?

first_func() 每一次只打印一个人的消息。我们可以让函数 first_func() 接受参数,该参数将存储名称然后打印相应地接受字符串。为了这样做,需要像所示的那样在函数内添加一个参数。

 

返回语句

当函数产生某个值,并且该值必须存储在一个变量中,或者需要返回或返回给主算法进行进一步操作时,使用return语句。

 

默认参数

当一个函数的参数在大多数情况下是常见的或者它是隐式的时,使用这个概念。

 

任意数量的参数

如果函数要接受的参数数量未知,则在参数前使用星号。

 

全局变量和局部变量

在函数内部声明的变量是局部变量,生命周期限于函数执行期间;在函数外部声明的是全局变量。

 

lambda函数

程序中有时需要临时使用一个简单的函数,单独定义出来比较费事,为了提高编程效率,Python等很多语言引入了Lambda函数,这些Lambda函数没有使用任何名称定义,只携带一个表达式,返回的是函数本身(类似函数指针或者函数对象)。Lambda函数在操作列表时非常方便。这些函数由关键字lambda定义,后面跟着变量、冒号和相应的表达式。

 

九、类和对象

 

Python中的变量、列表、字典等在底层都是对象,对象是类的实列,而类是用来描述具有相同属性和方法的对象集,它定义集合中每个对象共有的属性和方法。

本节常见的定义和概念定义:

  • 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例

  • 对象(Object):通过类定义的数据结构实例(Instance),对象包括两类成员(类变量和实例变量)和方法。例如我们定义了一个Person类,而具体的人,比如小明,小黄就是Person类的实例

  • 属性: 描述该类具有的特征,比如人类具备的属性,身份证,姓名,性别,身高,体重等等都是属性

  • 方法: 该类对象的行为,例如这个男孩会打篮球,那个女孩会唱歌等等都是属于方法,常常通过方法改变一些类中的属性值

 

成员函数与变量

类是现实事物的抽象表达,往往存在一些对内和对外的操作,即实现一些功能。这些功能一般代表类中的函数和变量,而类内的函数成为该类的”方法“,类中的变量成为属性。

 

继承

继承是面向对象编程的一种重要方式,通过继承,子类可以扩展父类的功能。父类是继承的类,也称基类;子类是从另一个类继承的类,也称派生类。

 

总结

本章讲述了Python的一些基础用法,通过学习,也应该初步掌握了Python,但这还远远不够,还需要大量的练习和调试,系统的地学习Python编程。我们暂时对Python的基础用法学习到这步,下面我们再一起学习一下Python的库!

 

最新回复

前几天论坛里有个python的cheat sheet,很全面。   详情 回复 发表于 2024-7-26 16:49
点赞 关注(1)

回复
举报

6828

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

学习Python编程,毕竟是一门语言,还需要大量的编程练习和调试,继续分享也是进步,期待

 
 

回复

755

帖子

5

TA的资源

纯净的硅(高级)

板凳
 

楼主对python语言的基础知识进行了全面的总结,对python的初学者了解该语言有很大的帮助

 
 
 

回复

7671

帖子

2

TA的资源

五彩晶圆(高级)

4
 

前几天论坛里有个python的cheat sheet,很全面。

 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表