机器学习概述

  • 一. Python数据处理基础
  • 1. 基本数据类型
    • 1.1 number
    • 1.2 str
      • 1.2.1 字符串判断
      • 1.2.2 拆分字符串
    • 1.3 列表 []
      • 1.3.1 删除列表元素
    • 1.4 tuple ()
    • 1.5 dict {}
    • 1.6 set {}
    • 1.7 range()函数
  • 2. 运算符
    • 2.1 算术运算符
    • 2.2 位运算符
    • 2.3 输入输出
      • 2.3.1 input
      • 2.3.2 格式化输出
  • 3. 控制结构
  • 4. 函数
    • 4.1 函数参数
    • 4.2 匿名函数
  • 5. 数据文件读写
    • 5.1 Python原生标准文件的打开、读取(写入)、关闭操作
    • 5.2 Numpy存取文件
    • 5.3 Pandas存取文件

一. 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中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库提供了专门的文件输入输出函数,大致分为读取函数和写入函数,如表
import pandas as pd
data=pd.read_csv('f:/data/film.csv') # 默认是逗号分隔符,可以省略
data.head()

机器学习基础学习笔记【二】相关推荐

  1. 吴恩达《机器学习》学习笔记二——单变量线性回归

    吴恩达<机器学习>学习笔记二--单变量线性回归 一. 模型描述 二. 代价函数 1.代价函数和目标函数的引出 2.代价函数的理解(单变量) 3.代价函数的理解(两个参数) 三. 梯度下降- ...

  2. Java基础学习笔记(二)_Java核心技术(进阶)

    本篇文章的学习资源来自Java学习视频教程:Java核心技术(进阶)_华东师范大学_中国大学MOOC(慕课) 本篇文章的学习笔记即是对Java核心技术课程的总结,也是对自己学习的总结 文章目录 Jav ...

  3. java冰法_Java基础学习笔记二 Java基础语法

    注释 注释用来解释和说明程序的文字,注释是不会被执行的. 单行注释 //这是一条单行注释 public int i; 多行注释 /*这是 * 一段注释, * 它跨越了多个行*/ public void ...

  4. Python3零基础学习笔记二

    python3中常用的字符串方法(method)    方法的调用方法:       对象.方法名(方法传参)    说明:       方法的调用同函数调用一样属于表达式.    示例:       ...

  5. 吴恩达《机器学习》学习笔记七——逻辑回归(二分类)代码

    吴恩达<机器学习>学习笔记七--逻辑回归(二分类)代码 一.无正则项的逻辑回归 1.问题描述 2.导入模块 3.准备数据 4.假设函数 5.代价函数 6.梯度下降 7.拟合参数 8.用训练 ...

  6. 吴恩达《机器学习》学习笔记十二——机器学习系统

    吴恩达<机器学习>学习笔记十二--机器学习系统 一.设计机器学习系统的思想 1.快速实现+绘制学习曲线--寻找重点优化的方向 2.误差分析 3.数值估计 二.偏斜类问题(类别不均衡) 三. ...

  7. 【笔记】MySQL的基础学习(二)

    [笔记]MySQL的基础学习(二) MySQL 老男孩  一 视图 视图其实就是给表起个别名 1.创建视图 格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v1 AS ...

  8. Python基础学习笔记之(二)

    Python基础学习笔记之(二) zouxy09@qq.com http://blog.csdn.net/zouxy09 六.包与模块 1.模块module Python中每一个.py脚本定义一个模块 ...

  9. Unity超基础学习笔记(二)

    Unity超基础学习笔记(二) 1. 基本数据类型的扩展 之前在K12中学习了一些基本的数据类型,实际上C#支持更多的数据类型.如下: 注意无符号整型数和有符号整型数的表示范围,例如: int 能表示 ...

最新文章

  1. 怎么扫描_打印机上扫描仪怎么用 打印机上扫描仪使用及添加方法
  2. 数据挖掘导论读书笔记10聚类分析续
  3. Ajax 中XmlHttp 乱码 的解决方法 (UTF8,GB2312 编码 解码)
  4. mac下android环境搭建笔记(android studio)
  5. awk用法小结(作者总结)
  6. 【HDU - 2546】饭卡 (dp,0-1背包,贪心思想)
  7. 学习较底层编程:动手写一个C语言编译器
  8. 【Pytorch神经网络理论篇】 32 PNASNet模型:深层可分离卷积+组卷积+空洞卷积
  9. oracle数据库密码复杂度查询,Oracle11g R2创建PASSWORD_VERIFY_FUNCTION对应密码复杂度验证函数步骤...
  10. PyTorch是个啥玩意儿?
  11. Hive insert into小文件问题优化解决
  12. 微信小程序相关三、css写小黄人
  13. Properties 类的详细使用(十三)
  14. 大数据分页实现与性能优化【转】
  15. 【iOS】file not found: .../Build/Products/Debug-iphonesimulator file not found
  16. virtualBox虚拟机之间网络互通设置
  17. 根据标注点坐标范围计算显示缩放级别zoom自适应显示地图
  18. node 热更新代码,无需每次重启命令
  19. 史诗级漏洞爆发,Log4j 背后的开源人何去何从?
  20. 转行做美工设计有没有前途?0基础怎么学好美工设计?

热门文章

  1. 论人工智能历史、现状与未来发展战略
  2. 明哥学习Spring(2)
  3. 「图学习推荐系统」最新2022综述
  4. 计算机配置ppt制作,笔记本电脑怎么制作PPT
  5. 谈谈我自己以及想说的话
  6. ROS 小车原地转圈的解决办法及调试方法
  7. 零基础可以报原画班么?原画培训坑不坑?
  8. PostgreSQL 之 流复制主备库切换
  9. 海关数据正确引用方式
  10. 信息收集详情(高能集锦)