【十一】机器学习之路——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][456123]

还有一些列表的函数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库,非常重要且常用的库。

原创粉丝点击