【十一】机器学习之路——Python基础数据运算
来源:互联网 发布:淘宝网雷丝高领打底衫 编辑:程序博客网 时间:2024/06/07 15:02
没学习过Python的小伙伴可能会对之前博客里的代码里的array,arrange,list等一头雾水,今天咱们简单介绍一下Python里的这些基础的数据运算方法,及Python里的基础数据类型。本篇博客参考Runoob网站的python基础教程,有兴趣的小伙伴可以通过这个链接学习一下Python的基础知识。现在介绍一下python里的标准数据类型:
Python标准数据类型
在内存中存储的数据可以有多种类型。和其他语言一样Python里也有数字、字符串这些数据类型。在Python里定义了一些标准类型,用于存储各种类型的数据。
Python有五个标准的数据类型:
- Numbers(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Dictionary(字典)
Number(数字)
数字数据类型用于存储数值。当你指定一个值时,Number对象就会被创建:
var1 = 1var2 = 10
Python支持四种不同的数字类型:
- int(有符号整型)
- long(长整型[也可以代表八进制和十六进制])
- float(浮点型)
- complex(复数)
python里支持复数,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。
实例:
String(字符串)
字符串或串(String)是由数字、字母、下划线组成的一串字符。
程序员最常见的字符串:
string="Hello World"
如果要从字符串中获取一段子字符串,可以使用变量 [头下标:尾下标],就可以截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。
实例:
#!/usr/bin/python# -*- coding: UTF-8 -*-str = 'Hello World!'print str # 输出完整字符串print str[0] # 输出字符串中的第一个字符print str[2:5] # 输出字符串中第三个至第五个之间的字符串print str[2:] # 输出从第三个字符开始的字符串print str * 2 # 输出字符串两次print str + "TEST" # 输出连接的字符串
输出结果
Hello World!Hllollo World!Hello World!Hello World!Hello World!TEST
List(列表)
列表在Python里十分常见,是我们使用频率很高的一种数据类型,列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。
列表用 [ ] 标识,是 python 最通用的复合数据类型。
列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。
加号 + 是列表连接运算符,星号 * 是重复操作。如下实例:
#!/usr/bin/python# -*- coding: UTF-8 -*-list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]tinylist = [123, 'john']print list # 输出完整列表print list[0] # 输出列表的第一个元素print list[1:3] # 输出第二个至第三个元素 print list[2:] # 输出从第三个开始至列表末尾的所有元素print tinylist * 2 # 输出列表两次print list + tinylist # 打印组合的列表
输出结果:
['runoob', 786, 2.23, 'john', 70.2]runoob[786, 2.23][2.23, 'john', 70.2][123, 'john', 123, 'john']['runoob', 786, 2.23, 'john', 70.2, 123, 'john']
上一篇博客里logistic回归python实现的一段代码,dataMat和labelMat就赋值为列表,然后利用for循环将数据一个一个添加到列表中去,如下所示:
def loadDataSet (): dataMat = []; labelMat = []#dataMat为X输入数据,labelMat为输出0,1数据 fr = open('/Users/cailei/Cai_Lei/AI/MachineLearning_data/Ch05/testSet.txt') for line in fr.readlines(): lineArr = line.strip().split()#移除头尾指定字符,并将数据分割为不同部分 dataMat.append([1.0,float(lineArr[0]),float(lineArr[1])])#令X0=1.0,X1为第一列数据,X2为第二列数据 labelMat.append(int(lineArr[2]))#将第三列数据赋值为输出数据 #print(dataMat) return dataMat,labelMat
再写一个简单的例子:
#将dict1里的数据一个一个添加到dict里去dict = [1,2,3]dict1 = [4,5,6]n=len(dict1)for i in range(n): dict.append(dict1[i])print dict #将dict1和dict2直接相加也同样可以dict = [1,2,3]dict1 = [4,5,6]dict2 = dict1+dictprint dict2
输出结果如下所示:
[1, 2, 3, 4, 5, 6][4,5,6,1,2,3]
还有一些列表的函数append(),sort(),count()等与操作可以参考Runoob网站的python基础教程。
Tuple(元组)
元组是另一个数据类型,类似于List(列表)。
元组用”()”标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
#!/usr/bin/python# -*- coding: UTF-8 -*-tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )tinytuple = (123, 'john')print tuple # 输出完整元组print tuple[0] # 输出元组的第一个元素print tuple[1:3] # 输出第二个至第三个的元素 print tuple[2:] # 输出从第三个开始至列表末尾的所有元素print tinytuple * 2 # 输出元组两次print tuple + tinytuple # 打印组合的元组
输出结果:
('runoob', 786, 2.23, 'john', 70.2)runoob(786, 2.23)(2.23, 'john', 70.2)(123, 'john', 123, 'john')('runoob', 786, 2.23, 'john', 70.2, 123, 'john')
Dictionary(字典)
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用”{ }”标识。字典由索引(key)和它对应的值value组成。
#!/usr/bin/python# -*- coding: UTF-8 -*-dict = {}dict['one'] = "This is one"dict[2] = "This is two"tinydict = {'name': 'john','code':6734, 'dept': 'sales'}print dict['one'] # 输出键为'one' 的值print dict[2] # 输出键为 2 的值print tinydict # 输出完整的字典print tinydict.keys() # 输出所有键print tinydict.values() # 输出所有值
输出结果
This is oneThis is two{'dept': 'sales', 'code': 6734, 'name': 'john'}['dept', 'code', 'name']['sales', 6734, 'john']
讲完了python里最基础的一些数据格式,大家有个概念上的理解,最好自己写写简单的代码加深印象,下一篇博客简单讲一下python里的numpy库,非常重要且常用的库。
- 【十一】机器学习之路——Python基础数据运算
- 机器学习基础(林軒田)笔记之十一
- Python新手学习基础之运算符——成员运算与身份运算
- Python新手学习基础之运算符——算术运算符
- Python新手学习基础之运算符——比较运算符
- Python新手学习基础之运算符——位运算
- 机器学习之python基础(一)
- 机器学习之python基础(二)
- 机器学习之python基础(三)
- 机器学习之python基础(五)
- 机器学习之python基础(四)
- Python进阶之路 — 十一
- Python机器学习基础篇之python基础篇
- Python与机器学习之数据可视化
- Python 机器学习基础(一)——Python
- 机器学习基础(十一)—— Logistic Regression 梯度更新公式的推导
- 机器学习基础(二十一)—— 分类与回归、生成模型与判别模型
- Python && 机器学习基础
- python中的input方法
- Nginx负载均衡服务器的双机高可用
- 函数(方法)
- 详解python中闭包和装饰器
- 实验6:树和二叉树的实验2
- 【十一】机器学习之路——Python基础数据运算
- 四周第三次课 2017.11.08 进入编辑模式、vim命令模式、vim实践
- python-元组的使用方法
- 对输入数据进行多个异常处理
- 文章标题
- 计算机图形学简单介绍
- 软件工程第九章(上)
- springMVC注入bean的流程,源码
- Java基础——Java反射机制及IoC原理