机器学习基础学习笔记【二】

一. Python数据处理基础

1. 基本数据类型

  • 标准数据类型有6种,包括number、str、list、tuple、set、dictionary
  • 其中number和str属于基础数据类型,list、tuple、dict、set属于复合数据类型
  • list、set、dictionary是可变数据类型,number、str、tuple不可变数据类型

1.1 number

  • 数值型,是专门用于存储数值的数据类型,具有不可变性。
  • 所以数值型数据没有++、–等自增自减运算符
  • 支持4种不同的数值数据类型:int、float、bool、complex
  • 2个数相除,结果总是浮点数,即便这2个数都是整数且能整除

1.2 str

1.索引

  • 通过索引获得字符串中单个字符的值。
  • 索引从0开始,也可以用负索引。
    2.切片
  • 通过切片来获取子字符串的值【利用索引同时取出字符串中多个字符】
  • 切片时结束索引的值取不到。
    3.其他操作
  • 可通过 变量[::-1] 实现字符串反向排列
str='Picture' 
print(str[2]) # 索引 
print(str[1:3]) # 切片 
print(str[-3:-1]) 
print(str[3:-1]) 
print(str[-6:7]) 
print(str[2:]) #从开始索引到末尾 
print(str[:5]) # 从开头到末索引之前的元素  
print(str[:]) # 整个字符串
print(str[1::2]) # 步长 
print(str[::-1]) print(str*2) print(str+'TEST')

c
ic
ur
tur
icture
cture
Pictu
Picture
itr
erutciP
PicturePicture
PictureTEST

  • 可以对字符串变量整体修改,但是不能对字符串中某个字符进行修改
  • 字符串改写常用方法: 字符串改写常用方法
  • 注意:.capitalize()和.title()除了改变首字母为大写外,其他大写字母还会改写为小写字母

1.2.1 字符串判断

  • 判断字符串以什么开头,用方法.startswith()
  • 判断字符串以什么结尾,用方法.endswith()
  • 判断字符(串)是否在字符串中,可以是用“in”运算符
  • 通过方法.find()获取字符或子串的下标,当返回值为-1时,表示没有找到

1.2.2 拆分字符串

  • 使用方法.split(),得到的是一个列表
  • 列表的索引和切片同字符串,但是列表中的单个元素可以修改
  • 列表常用的方法如下:列表常用的方法

1.3 列表 []

1.3.1 删除列表元素

  • 前3种是通过位置删除,最后1种是通过值删除
  1. 使用del语句删除元素, del mylist[0] ,是将列表中索引为0的元素删除
  2. 使用pop()方法删除最后一个元素,使用pop()方法可以删除列表最后一个元素,并可将该元
    素赋值给某变量 mylist1=mylist.pop()
  3. 使用pop()方法删除任何位置的元素,只要在括号中指定要删除元素的索引,并可将该元素赋
    值给某变量。 mylist1=mylist.pop(3)
  4. 根据值删除元素,使用remove()方法,并可将该元素赋值给某变量。
    mylist1=mylist.remove(‘elem’) ,该方法只删除第一个指定的值,如果要删除的值在列表中出现多次,需要使用循环来实现

1.4 tuple ()

  • 元组写到()中,元素之间用逗号分隔,元素可以具有不同额类型
  • 元组与列表类似,但是元组中的元素不能修改
    但如果元组内部的数据项是可变类型,则该数据项可以修改,比如数据项为列表
  • 元组的截取方式与字符串和列表类似,下标都是从0开始,末尾的位置从-1开始
  • 元组可以直接赋值给变量

1.5 dict {}

  1. 字典的访问需要使用键,并且用[]将键括起来
  2. 修改字典:通过访问键进行赋值实现添加或修改,使用update()方法修改或添加,使用del运
    算符删除,使用clear()方法清空字典
dict={'name':'zhangsan','age':20} 
print('原字典:') 
print(dict) # 添加 
dict['gender']='Female' 
print('添加后:') 
print(dict) # 修改1 
dict['name']='lisi' 
print('修改后:') 
print(dict) # 修改2 
dict.update({'No':1,'age':22}) 
print('修改后:')
print(dict) # 删除 
del dict['gender'] 
print('删除后:') 
print(dict) # 清空 
dict.clear() 
print('清空后:') 
print(dict)

原字典: {‘name’: ‘zhangsan’, ‘age’: 20}
添加后: {‘name’: ‘zhangsan’, ‘age’: 20, ‘gender’: ‘Female’}
修改后: {‘name’: ‘lisi’, ‘age’: 20, ‘gender’: ‘Female’}
修改后: {‘name’: ‘lisi’, ‘age’: 22, ‘gender’: ‘Female’, ‘No’: 1}
删除后: {‘name’: ‘lisi’, ‘age’: 22, ‘No’: 1}
清空后: {}

1.6 set {}

  • 由一系列无序的【所以不能索引】、不重复的数据项组成,集合中每个元素都是唯一的。
  • 创建集合可以使用{}或者set()函数,set()函数的参数是str,会将该str拆分为单个字符
  • 创建一个空集合必须使用set()函数,因为空的{}创建的是空字典。
  • 集合的作用主要是去重,可以使用set()函数进行去重

1.7 range()函数

  1. 用于生成一系列数,返回值是range类型。【注意:是一系列数,不是列表】,这是一个函
    数,参数之间用逗号隔开。
  • 参数可以取1个,range(a)得到从0开始到a-1共a个数。取不到最后一个值,这是编程语音的
    差一行为的结果
  • 参数取2个,range(b,a)得到从b开始到a-1共a-b+1个数
  • 参数取3个,range(b,a,c)得到从b开始到a-1的若干个数,各数之间的差值为c,即第3个参数
    用于设置步长

2. 运算符

2.1 算术运算符

  • +、-、*、/、%、**、//
  • 进行除法运算时,不管商为整数还是浮点数,运算结果始终为浮点数

2.2 位运算符

  • &、|、^、~、<<、>>
    -== ^ 是异或==
  • ~ 是按位反转。转换公式是~x=-x-1这里用到:负数在计算机里用补码存。

2.3 输入输出

2.3.1 input

  • input函数将所有接收的数据类型都默认为str,要得到需要的数据类型,需要强制转换。

2.3.2 格式化输出

  • 主要是为了方便修改语句,减少编写代码的工作量,并且包含自动取位、转换进制等
  • 格式化输出有3种, %+格式符方法、format函数方法、f-string方法
  1. %s、%d、%f、%%。如
    print(“我的名字是%s”%name)
    print(“我的学号是%06d”%student_no)
    print(“苹果单价%.02f”%price)
    print(“数据比例%.02f%%”%scale)

  2. 使用format。如
    print(“{}曰:学而时习之,不亦{}”.format(“孔子”,“说乎”))
    print(“{1}曰:学而时习之,不亦{0}”.format(“说乎”,“孔子”))

  3. f-string(f字符串)方法
    print(f’{name}的爱好是{fondness}')
    其中name和fondness是变量名,比如name=“zhangsan” fondness=“pingpang”

  4. print(doc) 语句的作用是:打印该语句前面但离得最近的那个大段注释(也叫说明文
    档)

3. 控制结构

  • 关于break和continue
for i in range(10):
	if i==3: 
		break 
	print(f'--------{i}--------') 
	for j in range(6): 
		if j==2: 
			continue 
		elif j==4: 
			continue 
		else:
			print(j)

--------0--------
0
1
3
5
--------1--------
0
1
3
5
--------2--------
0
1
3
5

4. 函数

4.1 函数参数

  • 不定数量位置参数【元组】,定义时前面加一个星号
  • 不定数量的关键字参数【字典】,定义时前面加两个星号
# 位置参数、默认参数、不定量参数【元组】、关键字参数【字典】 
def func(a,b=1,*num,**kwargs): 			 
	print(a,b,num,kwargs) 
	
func(2) 
func(4,2,3,4,5,6,c=2,d=5,e=8) 
func(4,2,3,d=5,e=8)

4.2 匿名函数

  • 函数无名,用lambda关键字创建

5. 数据文件读写

5.1 Python原生标准文件的打开、读取(写入)、关闭操作

  1. 打开文件的内置函数是open()函数,打开文件后会创建一个文件对象,对文件的访问通过这
    个文件对象进行
  • 函数中的参数有3个,第1个是文件名、第2个是打开方式、第3个参数是可选的,用来设置是否使用缓冲区
  • 函数中各参数都用引号引上
  1. 文件的不同打开方式
  • 打开方式有w、w+、r、r+、a、a+等。带有+表示读写方式打开
  • 还有wb、rb、ab等打开方式,为二进制方式打开。
  • 打开方式为写入或追加时,如果文件存在则打开该文件,如果该文件不存在则创建文件
  1. 文件打开方式不同,指针指向不同
  • 打开方式为w、r时,指针指向文件的开头
  • 打开方式为a时,指针指向文件的结尾
  1. 向文件写入数据,使用文件对象的write()方法,参数是要写入文件的字符串
  • 如果需要对文件写入数据,打开方式需要选择’w’(覆盖写入)或者’a’(追加)或‘r+’模式
  • 打开方式为w:在写入时会清空文件中内容,然后从当前指针处开始往后重新写入数据
  • 打开方式为a:在写入时会在后面文件最后添加
  • 打开方式为r+:在写入时,会从当前指针开始覆盖原文件中的内容,后面没有被覆盖的内容
    保留。
  1. 文件对象也提供了读取文件的方法,包括read()、readline()、readlines()等
  • f.read(),默认读取整个文件,如果设置了参数count,则从当前位置读取count字节。返回值
    为字符串
  • f.readline(),从当前位置读取文件中一行,返回值为字符串
  • f.readlines(),从当前位置开始,读取文件的所有行,返回值为列表,列表的一项对应文件的
    一行,是字符串。可以使用for循环对文件对象进行遍历
  • 文件读取或写入后,文件指针的指向会发生变化
  1. 文件使用完毕后,要关闭文件。使用文件对象的.close()方法关闭文件
  • 更方便的方法是使用python提供的with语句,使用with语句打开文件时,不必调用f.close()方
    法就能自动关闭文件。即使文件读取出错,也会保证关闭文件。
with open('f:/temp.txt','a+') as f: 
	f.write('lisi\n')

5.2 Numpy存取文件

  • 可以通过loadtxt()从文本文件中读取数据,得到的是nd-array
  • 用savetxt()把数组写入文本文件
  • Numpy主要读、写函数如下:Numpy主要读、写函数
  • Numpy中ndarray要求元素是单一数据类型的数据。
  • 读取的.csv文件中的数据类型可能不同,所以加dtype=np.str_将所有数据转换为统一的类型,即string类型
# 读取 import numpy as np 
tmp=np.loadtxt('f:/temp1.txt',dtype=np.str_,delimiter='\n') 
print(tmp,type(tmp))
# 另一种导入包及函数的方式 
from numpy import loadtxt 
tmp=loadtxt('f:/temp1.txt',dtype=np.str_,delimiter='\n') 
print(tmp,type(tmp))

5.3 Pandas存取文件

  • Pandas的基础是Numpy,核心功能是数据计算和处理。
  • Pandas库提供了专门的文件输入输出函数,大致分为读取函数和写入函数,如表
    Pandas存取文件
import pandas as pd 
data=pd.read_csv('f:/data/film.csv') # 默认是逗号分隔符,可以省略 
data.head()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值