人工智能全栈学习路线之Python基础(百度云智学院学习笔记)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了人工智能全栈学习路线之Python基础(百度云智学院学习笔记)相关的知识,希望对你有一定的参考价值。


在学习python时我们面临的最大的问题是:当程序出现异常的时候,不知道应该如何处理?错误提示看不懂!看懂也不知道怎么做!

下面是入门Python需要学习的内容,一共是四个大课程:

  1. ​​Python系统化学习之路​​Python的学习路线
    人工智能领域中Python的应用
    Python的程序设计案例
  2. ​​初识Python​​认识python
    python语法之输入与输出
  3. ​​Python基础入门​​Numpy
    Pandas
  4. ​​Python程序设计基础学习与应用​​python命名规则
    字符串
    列表
    集合
    字典
    条件语句
    循环语句
    函数
    模块

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_人工智能

Python系统化学习之路

Python的学习路线,分为【语法基础】、【能力提升】、【技术进阶】、【项目实战】四个板块

知识点大纲,涵盖了25个专题和212个知识点

Python的学习路线

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_人工智能_02

人工智能领域中Python的应用

人工智能体系结构

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_基础_03


人工智能技术矩阵

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_百度_04

Python的程序设计案例

GitHub地址:
​​​https://github.com/zhangziliang04/PythonStudy​

为了方便大家下载,我fork到了码云:
​​​https://gitee.com/zheng_bo_pu/PythonStudy​


制作词云

import matplotlib.pyplot as plt
import jieba
from wordcloud import WordCloud

#1.课程名称
text = open(title.txt,r,encoding=utf-8).read()
#2.中文分词
cut_text = jieba.cut(text)
#3.空格切分
result = " ".join(cut_text)
# print(result)
# 4.生成词云l
wc = WordCloud(
font_path=msyhbd.ttc, #字体文件
background_color=white, #背景颜色
width=1000,
height=600,
max_font_size=100, #字体大小
min_font_size=20,
mask=plt.imread(python.jpg), #背景图片
max_words=1000
)
wc.generate(result)
wc.to_file(result.png) #图片保存

#5.显示图片
plt.figure(title) #图片显示的名字
plt.imshow(wc)
plt.axis(off) #关闭坐标
plt.show()

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_百度_05

大家可以尝试更换title.txt文件以及python.jpg文件,当然simhei.ttf字体文件也是可以更换的

实时图像采集

# 实时:视频图像采集(opencv)
import cv2
cap = cv2.VideoCapture(0)
# 从视频流循环帧
while True:
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow("Frame", frame)
# 退出:Q
if cv2.waitKey(1) & 0xFF == ord(q):
break
# 清理窗口
cv2.destroyAllWindows()

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_学习_06


人脸识别

尝试运行代码:

# 实时:实时人脸检测
import cv2
import dlib

# 基于5特征点的人脸检测
detector = dlib.get_frontal_face_detector()
win = dlib.image_window()
cap = cv2.VideoCapture(0)

# 从视频流循环帧
while cap.isOpened():
ret, frame = cap.read()
image = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
# 检测灰度帧中的人脸
dets = detector(image, 0)
print("检测到人脸数量: ".format(len(dets)))
for i, d in enumerate(dets):
print("Detection : Left: Top: Right: Bottom: ".format(
i, d.left(), d.top(), d.right(), d.bottom()))
win.clear_overlay()
win.set_image(image)
win.add_overlay(dets)
cap.release()

发现报错了:

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_百度_07


这里一定不要慌,仔细读一下就会发现是缺失了一个名为’dlib’的库,我们安装一下:

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_基础_08


进度条加载完,出现successful就表示安装完成了

初识Python

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_人工智能_09

认识python

Python的意思是蟒蛇,源于作者喜欢的一部电视剧,是龟叔在1989年圣诞节期间,为了打发无聊的圣诞节而用C语言编写的一个编程语言,Python正式诞生于1991年

Python目前有两个版本, Python2和Python3 ,我们学习使用的是Python3版本

Python官网:
​​​https://www.python.org/​

关于Python的安装方法,大家可以查看我的这篇文章:
​Python入门_给小白的学习指南​​

python语法之输入与输出

打印语句print()

print("Hello World!")

print()方法自带换行

输入语句input()


人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_学习_10


input()语句输入的内容是字符串类型

Python基础入门

Numpy

Python科学计算领域,几乎所有科学计算库都依赖NumPy,它有以下基本功能:

  • 强大的N维数组对象
  • 广播功能
  • 基于C语言,速度快
  • 线性代数、傅里叶变换和随机数能力

下面来看一下具体操作:

常用函数

import numpy as np

arr = np.array([1,2,3,4,5,6,7,8,9,10])
print(arr)
print(arr.max())
print(arr.min())
print(arr.sum())

这里的四个输出,分别对应着arr数组,arr数组的最大值、最小值以及数组元素之和:

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_基础_11


下面看一下怎么改变arr数组的形状:

import numpy as np

arr = np.array([1,2,3,4,5,6,7,8,9,10])
print(arr.shape)
arr = arr.reshape(2,5)
print(arr.shape)

可以看到,数组原来的形状是(10,1),经过reshape(2,5)后,形状变成了(2,5)即五列两行:

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_python_12


我们来看一下二维数组是怎么求平均数的:

import numpy as np

arr = np.array([1,2,3,4,5,6,7,8,9,10,11,12])
arr = arr.reshape(3,4)
print(np.average(arr))

得到的输出是6.5

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_学习_13


一维数组的取值与列表相同,这里就不过多阐述了,下面看看二维数组是怎么取值的:

import numpy as np

arr = np.array([1,2,3,4,5,6,7,8,9,10,11,12])
arr = arr.reshape(3,4)
print(arr)
print(arr[0:2,2])

这里的"0:2"指的是取第一、二行,逗号后面的2表示的是第3个数,因为是从0开始计数的,所以取到了第一行和第二行的第三个数:

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_学习_14


如果冒号前后没有指定,就会取全部行或列(左边对应行;右边对应列) 广播机制

import numpy as np

arr1 = np.array([1,2,3,4,5,6])
arr2 = 3 * arr1
arr3 = arr1 + arr2

print(arr1)
print(arr2)
print(arr3)

使用数组时,如果要同时对数组里的元素做四则运算,需要用到for循环,而numpy的广播机制免去了for循环:

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_人工智能_15

向量化计算

基本原则:

  • 最大程度不使用for循环
  • 尽量使用NumPy自带的函数
  • 多使用广播

下面是两个矩阵相乘:

import numpy as np

arr1 = np.array([[1,2,3],[4,5,6]])
arr2 = np.array([[10,11,12,13],[14,15,16,17],[18,19,20,21]])
arr3 = np.dot(arr1,arr2)
print(arr1)
print(arr2)
print(arr3)

只有矩阵1的列数与矩阵2的行数相等时才能做矩阵乘法:

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_百度_16


这样的广播机制比起使用for循环来说,计算量是大大地减少了

Pandas

Pandas为Python提供了高性能、易使用的数据计算功能

使用Pandas读取数据

方式1:

import pandas as pd

data = [name:小明,age:18,sex:male,
name:小王,age:20,sex:female,
name:小郑,age:20,sex:male]
df = pd.DataFrame(data)
print(df)

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_python_17


方式2:

import pandas as pd

csv_data = pd.read_csv(r"C:\\Users\\Administrator\\Downloads\\results7.csv")
df = csv_data.head()
print(df)

csv文件内容:

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_学习_18


读取csv文件:

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_百度_19


head()方法不带参数,默认显示前5行,使用tail()可以查看后五条数据

方式3:

import pandas as pd
import sqlite3

with sqlite3.connect( data.db) as conn:
new_data = pd.read_sq1_query(select * from class_4_data where age < 30;,conn)
print(new_data)

Pandas常用函数

以这段代码为基础举例:

import pandas as pd

data = [name:小明,age:18,sex:male,
name:小王,age:20,sex:female,
name:小郑,age:20,sex:male,
name:无名氏,age:30,sex:unknow]
df = pd.DataFrame(data)

选择数据:

age = df[age]

查看"age"这个字段:

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_基础_20

age_even = df[df[age] % 3 == 0]

选出年龄能被3整除的数据:

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_基础_21


去重:

student = df[sex]. unique()

去掉重复的性别,返回一个数组:

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_基础_22

unique_df = df.drop_duplicates(age, keep=first)

去掉第一个重复的数据:

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_学习_23


如果把first改成last:

unique_df = df.drop_duplicates(name, keep=last)

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_人工智能_24


将保留最后一个重复的数据

分组(groupby):

gender = df.groupby(sex).size()

按照性别分组:

人工智能全栈学习路线之Python基础(百度云智学院学习笔记)_百度_25

Python程序设计基础学习与应用

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言

python命名规则

  • 变量名只能包含字母、数字和下划线
  • 变量名可以字母或下划线开头,但不能以数字开头
  • 变量名不能包含空格,但可使用下划线来分隔其中的单词
  • 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词
  • 变量名应既简短又具有描述性
  • 慎用小写字母I和大写字母0,因为他们可能被人错看成数字1和0

注意:应使用小写的Python变量名。在变量名中使用大写字母虽然不会导致错误,但还是要避免使用大写字母

字符串

字符串或串(String)是由数字、字母、下划线组成的一 串字符
字符串有多种形式,可以使用单引号(’…’),双引号("…") 来获得同样的结果
个反斜线加一个单一字符可以表示一个特殊字符,通常是不可打印的字符

在人工智能应用开发过程中,我们往往需要根据文件路径读取文件,一般文件路径的格式为:
C:Windows\\temp\\readme.txt

对比上表,我们需要把\\换成\\才可以正确读取路径,于是有: C:\\Windows\\temp\\readme.txt

我们知道的意义是作为转义字符,跟其他不同的字母组合具有不同的含义,那么我们只要取消\\的转义功能就可以获取原来的路径字符串了。于是有: r"C:\\Windows\\templreadme.txt"

列表

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可
列表可以修改,可以用于切片、增、删、改、查

列表的增加需要通过对象点方法调用内置的append方法,但是每次只能增加一个元素

与不可更改的字符串不同,列表是一个可以更改的类型

集合

集合Set是一个包含无序不重复的元素的集体

创建方法:
1).使用大括号或者set()函数创建集合;
2).注意:创建一个空集合必须用set()而不是,因为是用来创建一个空字 典的。

在使用数据集进行机器学习训练时,当图像数据必须以list的形式输入时,为了避免图像数据的重复,可以利用集合去重。

集合可以通过update方法和add方法增加元素

字典

  • 字典是一种可变的容器,可以存储任意类型的数据
  • 字典中的每个数据都是用"键"(key)进行索引,而不像其他序列可以用下标来进行索引
  • 字典中的数据没有先后顺序关系,字典的存储是无序的
  • 字典中的数据以键(key)-值(value)对形式进行映射存储
  • 字典的键不能重复,且只能用不可变类型作为字典的键
  • 键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一

条件语句

Python条件语句是通过一条或多条语句的执行结果(True或者False) 来决定执行的代码块

循环语句

Python for循环可以遍历任何序列的项目,另外一种执行循环的遍历方式是通过序列索引迭代

函数

在程序设计中,函数是组织好的,可重复使用的,用来实现单一, 或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。
在前面的学习中我们已经知道Python提供了许多内建函数,比如print()。 但我们也可以自己创建函数,这被叫做用户自定义函数。

在Python中,定义一一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。

模块

Python的强大还体现在"模块自信”上, 因为Python不仅有很强大的自有模块(或者包、库,比如为标准库),还有海量的第三方模块(或者包、库),任何人还都能自己开发模块(或者包、库),正是有了这么强大的"模块自信”,才体现了Python的优势所在。并且这种方式也正在不断被更多其它语言所借鉴。


整理Python全栈技术学习路线

【整理】Python全栈技术学习路线


学习了Python全栈知识,感觉很不错,推荐给大家。获取方式在文末。仅用于个人学习使用和分享交流,不做他用。

以下是对应的学习路线和知识内容:

【阶段一】Python基础+Linux

Python基础个人学习感受:

  • 主要是Python语言基础相关的知识;
  • 如果已经有相关基础,可以不用学;
  • 建议看下递归、推导式相关内容。

面向对象编程个人学习感受:

  • 这个还是很重要,面向对象的内容讲的比较透彻;
  • 重要是里边的实例非常有意思,也很经典。

Linux命令个人学习感受:

  • 这个主要是常用的命令,包括目录、文件、压缩以及编辑器VIM的使用等,比较基础。
  • 这个是入门级别的,感觉有基础的可以不用学。

【阶段二】多任务编程+服务器+前端基础

多任务编程个人学习感受:

  • 进程和线程讲解的很透彻,尤其是线程中的锁相关内容;
  • 感觉应该再多点实例进行对比讲解,可能会更好点。

Web服务器个人学习感受:

  • 先讲解了一些网络编程相关的知识;
  • 然后有http协议知识,最后是web服务器相关内容,通俗易懂吧。

Web前端开发个人学习感受:

  • 这个比较讲点,包括Mtml、CSS、JS、JQuery等知识;
  • 都是从基本的概念说起,比较好理解,实例应该再多点。

【阶段三】数据库+mini Web框架

Mysql数据库个人学习感受:

  • 关于Mysql的基本基础内容都有提及;
  • 如果能加一点Mysql的性能优化和调优感觉就完美了。

MIni Web框架个人学习感受:

  • 这个没啥说的,很好,哈哈

【阶段四】Dhango框架+美多商城项目

Django框架个人学习感受:

  • 框架的基本环境、概念、基础知识、相关使用都有介绍;
  • 主要是细节讲的很透彻,也很容易理解吧。

后续的就不一一分享了,自己看吧,感觉很详细,还是直接推荐学习的。

【阶段五】DRF框架+美多商城后台


【阶段六】项目部署+Flask框架+Hm头条



【阶段七】人工智能基础+推荐系统基础+Hm头条推荐系统



【阶段八】Python测试





【阶段九】Python运维+NLP自然语言处理


【阶段十】深度学习与机器视觉+Python爬虫


【阶段十一】数据分析

如果资料对您有帮助,请联系技术V获取~

以上是关于人工智能全栈学习路线之Python基础(百度云智学院学习笔记)的主要内容,如果未能解决你的问题,请参考以下文章

学人工智能,要学哪些?

整理Python全栈技术学习路线

python基础有哪些内容呢?

全栈自研“AI大底座”发布!百度智能云:智能计算基础设施正面临全面升级...

python学到啥程度可以就业

学习Python需要掌握哪些知识?