IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 机器学习与人工智能 -> 正文阅读

[Python知识库]机器学习与人工智能

写在最前面,此篇文章是我观看了《机器学习与人工智能》Gitee.com的课程的笔记。

一,python相关知识

1.1 基础知识

1.1.1 基础

1.1.2内置函数

Python带有预先构建的函数

从一个进制到另一个进制的转换

从16进制到十进制的转换,是通过16进制值前面添加前缀0x来完成的。

反之亦然,使用内置的hex()。10到16进制

通过在8进制值中添加前缀0。

通过oct(10进制)从10进制到8进制

class int(x, base=10)
x -- 字符串或数字。
base -- 进制数,默认十进制。?各种进制转成10进制

?int()也可以用于获取浮点数的整数值,或者将字符串类型的数字转换为整数格式。相似的,函数str()可以被用来将整形转成字符串类型。

?bin()被用作二进制,float()被用作十进制,浮点值。chr()用于将ascii码转换为等效的字母表,ord()被反过来使用。

?1.1.3数字函数

round()函数将输入四舍五入到指定的位数或最接近的整数

complex()被定义一个复数abs()输出相同的绝对值

?

divmod(x,y)输出商和余数在元组的格式(商,余数)

如果第一个参数时该类的实例,isinstance()则返回True.还可以同时检查多个类

print(isinstance(1,int))
print(isinstance(1.0,int))
print(isinstance(1.0,(int,float)))
True
False
True

pow(x,y,z)可以被用来找到幂函数x的y次方,也可以找到第三个指定数字的mod值,即x的y次方对z求的余数

print(pow(3,3))
print(pow(3,3,5))
27
2

range()函数输出指定范围的整数。它还可以用于通过指定范围内的两个数字之间的差来生成一个序列,元素以列表的的形式返回

print(list(range(3)))
print(list(range(2,9)))
print(list(range(2,27,8)))
[0, 1, 2]
[2, 3, 4, 5, 6, 7, 8]
[2, 10, 18, 26]

1.1.4 接受用户输入输出

input()接受输入并以字符串的形式保存

abc=input("Type something here and it will be stored in varicble abc ")

print是python内置的一个函数

在python中,单引号,双引号和三引号用于表示字符串
大部分情况下单引号用于声明一个字符
生命一行时使用双引号,声明段落/多行时使用三引号

字符串可以分配给变量string1和string2,使用print语句时可以调用。

字符串连接是两个字符串的“加法”。注意,在连接时,字符串之间不会有空格

?打印格式化数据

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

print("Actual Number=%d"%18)
print("Float of the Number=%f"%18)
print("Octal equivalent of the Number=%o"%18)
print("Hexadecimal equivalent of the Number=%x"%18)
print("Exponential equivalent of the Number=%e"%18)
Actual Number=18
Float of the Number=18.000000
Octal equivalent of the Number=22
Hexadecimal equivalent of the Number=12
Exponential equivalent of the Number=1.800000e+01

PrecisionWidth和FieldWidth
FieldWidth时整个数字的宽度,精度是向右的宽度。你可以根据需要改变这些宽度
默认的精度宽度设置为6

?

1.2数据结构

1.2.1.1列表

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

list的声明只需要将变量等同于[]或list即可。

x=['apple','orange','peach']
y=['daisy','rose','peony','jasmine','lily','tulip']
z=[x,y,'test']
print(z)
[['apple', 'orange', 'peach'], ['daisy', 'rose', 'peony', 'jasmine', 'lily', 'tulip'], 'test']

1.2.2 切片

索引只限于访问单个元素,而切片则是访问列表内的一系列数据。换句话说,切片返回的是一个列表。

切片是通过定义切片列表中需要的父列表中的第一个元素和最后一个元素的索引值来完成的。它被写成parentlist[a:b],其中a,b是父列表的索引值。如果a和b未定义,则认为该索引值是a未定义时的第一个值,以及b未定义时的最后一个值。

num=[2,3,4,5,6,7,8,9,10]
print(num[1:4])
print(num[0:])
print(num[:])
print(num)
print(num[0:4])
print(num[4:])
[3, 4, 5]
[2, 3, 4, 5, 6, 7, 8, 9, 10]
[2, 3, 4, 5, 6, 7, 8, 9, 10]
[2, 3, 4, 5, 6, 7, 8, 9, 10]
[2, 3, 4, 5]
[6, 7, 8, 9, 10]

num[:9:3]
//从0开始,到9之前结束,间隔为3

1.2.1.3 列表的内置函数

为了找到列表的长度或者列表中元素的数量,我们可以使用len().

如果列表包含所有的整数元素,那么min()和max()给出列表中的最大值和最小值、

print(num1)
print("列表最小值:",min(num1))
print("列表最大值:",max(num1))

列表可以通过“+”来连接。生成的列表将包含添加的列表的所有元素。结果列表将不是嵌套列表。

?[1,2,3]+[4,5,6]
[1, 2, 3, 4, 5, 6]

可能会出现这样的需求,您可能需要检查预定义列表中是否存在特定的元素。考虑下面的列表

names=['lianhua','anna','lily','cake','peach','bear']

检查peach是都会出现在列表名称中。传统的方法是通过for循环遍历列表并使用if条件。但在python中,你可以使用"a在b中"的概念,如果a在b中出现,他会返回"True"如果不是,他会返回"False"
?

'peach' in names

'rose' in names

区分大小写?

比较的时候先考虑第一个索引,然后第一个索引值相同,再比较第二个索引,以此类推

mlist=['bzaa','ds','nc','az','z','klm']
print(max(mlist))
print(min(mlist))
z
az

这里考虑每个元素的第一个索引,因此z有最高的ASCII值,因此他被返回,最小的ASCII值是a。

但是如果数字声明为字符串呢?

nlist=['1','94','93','1000']
print(max(nlist))
print(min(nlist))
94
1

即使数字再字符串声明中的,也会考虑每个元素的第一个索引,并相应的返回最大值和最小值。

但是如果你想找到基于字符串长度的max()字符串元素,那么我们要在max()和min()中声明参数'key=len'

names=['lianhua','anna','lily','cake','peach','bear','ll']
print(max(names,key=len))
print(min(names,key=len))
lianhua
ll

max()或min()函数返回第一个元素当两个或者多个相同长度时。

通过使用list()函数,一个字符串可以被转换成列表

list('hello')
['h', 'e', 'l', 'l', 'o']

append()被用来在列表的最后添加一个元素

lis=[1,2,3,56,2]
lis.append(1)
print(lis)
[1, 2, 3, 56, 2, 1]

count()用来计算列表中出现的特定元素的数量

lis1=[1,2,3,4,5,6,1,3545,6765,2,4,5]
lis.count(1)
2

append()函数也可以被用来在末尾添加一整个列表。观察可以发现最终得到的列表是嵌套列表。

?但是如果嵌套列表不是需要的,那么可以使用extends()函数

?index()被用来找到一个特殊元素的索引值。但是如果有许多个元素具有相同的值,那么元素第一个索引值会被返回。不存在会返回异常

?

insert(x,y)用于在指定的索引值x处插入元素y。append()函数是得他只能插在最后

?insert(x,y)插入但不替代元素。如果希望用宁一个元素替代该元素,只需将赋值给该特定索引

pop()函数返回列表中的最后一个元素。这类似于堆栈的操作。因此,说列表可以作为堆栈使用是正确的。

?

?pop()用于根据可分配给的变量的元素的索引值来删除元素。还可以通过使用remove()函数指定元素本身来删除元素。

可以替代remove但是使用索引值的函数del。

?可以使用reverse()函数反转列表中出现的所有元素

注意嵌套列表被视为夫列表的单个元素。因此在嵌套列表里的元素是不可以被反转的。

Python提供了内置函数sort()去按升序排序

lst3=[1,10,2,3,4,4,5]
lst3.sort()
print(lst3)
[1, 2, 3, 4, 4, 5, 10]

对于降序,因为默认情况下反向条件作为false.因此,将其改成true将按照降序排列元素

?

?对于包含字符串元素的列表,sort()会根据他们的ASCII值以升序的方式排列而通过确定reverse=True可以让他们以降序的方式排列

?如果根据长度排序我们应个像图示的一样确定key=len

1.2.1.4复制一个列表

大多数 新的python程序员都会犯这个错误,即对象的复制和拷贝的差异。考虑一下的例子:

?虽然我们没有对listb进行操作,但是他也发生了变化。这是因为lista,listb指向相同的内存空间。那么如何解决这个问题呢?
在切片中我们已经看到parentlist[a:b]从父列表返回一个起始索引a和结束索引b的列表,如果a和b没有被提及,那么默认情况下他会包含第一个到最后一个元素。
我们将lista的数据作为变量分配给Listb

1.2.2 元组

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

要定义元组,将一个变量分配给paranthesis()或tuple()

tup=()
tups=tuple()
?声明元组

2*(27,)#数据会重复两次

(27, 27)

注意:容器乘以一个数,代表重复多少次,例如的2*(27,),或者

在声明元组时可以分配值。他接受一个列表作为输入并将其转换为元组,或者接受一个字符串并将其转换为元组。

tup3=tuple([1,2,3])
print(tup3)
tup4=tuple('Hello')
print(tup4)

?他遵循与列表相同的索引和切片

1.2.2.1一个元组映射到另一个元组

print(a,b,c)#交换前
(c,b,a)=(a,b,c)
print(a,b,c)#交换后
gamma beta alpha
alpha beta gamma

?

?1.2.2.2元组内置函数

count()函数计算组元中存在的指定元素的数量

?index()函数返回指定元素的索引。如果元素大于1,则返回该指定元素的第一个索引

1.2.3 集合

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

set被声明为set(),他将初始化一个空集。set([sequence])也可以被执行来声明一个包含元素的集。

重复两次的元素2,3只会出现一次。因此在一个集合中,每个元素都是不同的。

1.2.3.1 内置函数

?add()将向集合中添加一个特定的元素。注意,新添加的元素的索引是任意的,可以放在末尾不需要的任何位置。

#add()将向集合中添加一个特定的元素。注意,新添加的元素的索引是任意的,可以放在末尾不需要的任何位置。
print(set1)
set1.add(0)
print(set1)

?intersection()函数输出一个交集合,该集合包含两个集合中的所有元素。

#intersection()函数输出一个交集合,该集合包含两个集合中的所有元素。
set1.intersection(set2)

difference()函数输出一个集合,其中包含在set1中而不再set2中的元素

?pop()是用来移除集合中的任意元素

?remove()函数从集合中删除指定的元素,如果元素不在集合里,会产生异常

clear()用于清除所有元素并设置为空集

1.2.3字符串

String0='Louts is beautiful'
String1="Louts is beautiful"
String2='''Louts 
is 
beautiful '''

也可以切片

1.2.3.1内置函数?

find()函数返回要在字符串中找到的给定数据的索引值。如果没有找到它,它返回-1.请注意不要将返回的-1与反向索引值混淆

string.find(value, start, end)
参数描述
value必需。要检索的值。
start可选。开始检索的位置。默认是 0。
end可选。结束检索的位置。默认是字符串的结尾。
print(String0)
print(String0.find('ti'))
print(String0.find('am'))

返回的索引值是输入数据中的第一索引.

capitalize() 将字符串的第一个字母变成大写,其他字母变小写。对于 8 位字节编码需要根据本地环境

capitalize()方法语法:

str.capitalize()

?center()用于通过指定字段宽度将字符串居中对齐

center() 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。默认填充字符为空格。

center()方法语法:

str.center(width[, fillchar])
  • width -- 字符串的总宽度。
  • fillchar -- 填充字符。

zfill()通过指定字段宽度来填充0

expandtabs() 方法把字符串中的 tab 符号?\t?转为空格,tab 符号?\t?默认的空格数是 8,在第 0、8、16...等处给出制表符位置,如果当前位置到开始位置或上一个制表符位置的字符数不足 8 的倍数则以空格代替?

?index()和find()函数的工作方式相同,唯一的区别在于当输入袁术在字符串中没有找到,find()返回-1,index()函数会抛出一个ValueError

endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置。

?count() 方法用于统计字符串里某个字符或子字符串出现的次数。可选参数为在字符串搜索的开始与结束位置。?

str.count(sub, start= 0,end=len(string))

join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

join()函数可以被用来在列表元素中插入任意的字符。

str.join(sequence)
sequence -- 要连接的元素序列

split()函数被用来将以恶搞字符串转换成列表。把他想成跟join()相反的函数

split() 方法语法:

str.split(str="", num=string.count(str)).
  • str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
  • num -- 分割次数。默认为 -1, 即分隔所有。

lower()
upper()大小写转换

?

replace()函数将该元素替换为另一个元素

?strip()函数用于从右端和左端删除不需要的元素

strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

strip()方法语法:

str.strip([chars]);
f='         hihduihu      '
print(f)
print(f.strip())#没有指定字符,那么他会删除数据左边和右边的所有空格

g='        *%*****--- hihduihu  ----%%%*****    '
print(g)
print(g.strip('*'))#并没有删除*号,因为在左边和右边都有空格。
print(g.strip(' %*-'))

1.2.4 词典

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

为了一定一个词典,让一个变量和{}或dict()相等

?词典的工作方式有点像列表,但增加了分配自己索引的功能。

?zip()函数用来结合两个列表

两个相关的列表可以合成一个字典

names=['one','two','three','four']
numbers=[1,2,3,4]
d3={names[i]:numbers[i] for i in range(len(names))}
print(d3)

?这两个列表组合和成一个列表,每个元素都与元组有关。元组因为他是被分配的,所以值不应该被改变。

进一步,为了将上面的内容转成词典。我们可以使用dict()函数。

二.Nampy-多维数据数组软件库

2.1简介

为了使用numpy模块,你先要像下面的例子一样导入模块

%matplotlib inline
import matplotlib.pylot as plt
#建议使用这种方式
import numpy as np

?2.2创建numpy数组

又很多方法去初始化新的numpy数组,例如从

  • python列表或者元素
  • 使用专门用来创建numpy arrays的函数,例如arange,linspace等
  • 从文件中读取数据

2.2.1从列表中

例如,为了从python列表创建新的向量和矩阵我们可以使用Numpy.array函数

一维

import numpy as np
a=[1,2,3,4]
print(a)
v=np.array(a)
print(type(v))
print(v)
v.shape

二维

#矩阵:数组函数的参数是一个嵌套的python表
M=np.array([[1,2],[3,4],[5,6]])
print(M)
print()
print(M.shape)#这里的shape是指维度,这里有三行,每行有两个数,所以是(3,2)

?

三维

M=np.array([[[1,2],[3,4],[5,6]],\
           [[3,4],[5,6],[7,8]],\
           [[7,8],[9,10],[11,12]]])
print(M)
print()
print(M.shape)

?

?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 17:36:49  更:2022-04-18 17:42:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 -2025/4/18 18:48:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码