近期开始学习python机器学习的相关知识,为了使后续学习中避免编程遇到的基础问题,对python数组以及矩阵库numpy的使用进行总结,以此来加深和巩固自己以前所学的知识。
Section One:Python数组的使用
在python中,数组这个概念其实已经被淡化了,取之的是元组和列表,下面就列表和元组进行相关的总结和使用。
Subsection One: List
list列表本质是一种序列类型的数据结构,有点类似于C/C++中所学的数组,但又不同。他们的相同之处在于,二者中的每个元素都分配有一个索引值来进行访问,如:
1 #python list 2 list1 = [‘physics‘, ‘chemistry‘, 1997, 2000] 3 print(list1[0])
而在C/C++中我们知道,数组也可以通过这种数组名加索引值的方式来访问,在此不做赘述。
但是,细心的话,我们会发现,python中的列表与C/C++中有所不同,它可以包含不同的数据类型,而C/C++中则不可以。此外,在上面的代码中,我们可以看到,二者有着相同的创建方式。
但在python中,对于list列表类型的访问,有着不同的方式,下面就列表的访问进行总结:
1 """List: 2 -------------------------------- 3 """ 4 # create a list 5 list1 = [‘physics‘, ‘chemistry‘, 1997, 2000] 6 7 # two methods to access a list as follows: 8 print "list1[0]", list1[0] 9 print "list1[1:4]", list1[1:4] 10 11 print "list1[-1]", list1[-1] 12 print "list1[-2]", list1[-2] 13 14 print "list1[1:]", list1[1:]
从上面两种方式,其实可以看到,python中的列表可以通过"起始索引:终止索引(可选)"的方式,来直接访问列表中的一串数据,这在C/C++中是无法做到的,这给我们带来极大的便利性,加上终止索引,表示访问从起始索引到终止索引之间的全部数据,不加则意味着要访问从起始索引到该列表末尾的全部数据。
此外,在列表中,索引值为负代表着从列表末尾来访问这个列表,图上图三、四例子可以看到。
此外,python中对于列表,引入了以下几种方法来更新和删除列表,并赋予几种访问列表属性的方法。
# update and delete list1.append(‘Google‘) print list1
列表可以通过append方法,往列表的末尾添加新的元素,在list1列表的基础上,这里添加了一个叫做google的字符串元素。
del list1[2] print "after deleting value at index 2", list1
可以看到,使用del函数将索引为2的数据删除了,此外,del函数还能结合之前提到的访问数组的方式来删除相关元素,如:
del list1[1:] print "after deleting value by list1[1:]", list1
同理,采用起始index:终止index的方式,也是能够实现删除列表中一段数据的。
此外,python中提供了一个len函数,来获取一个列表的长度,使用"+"操作符能够实现不同数组之间的合并,使用"*"操作符实现创建包含n个相同元素的列表,以及一些循环和遍历方式来确定数据是否在列表中,下面给出相关的操作:
"""List: -------------------------------- """ # create a list list1 = [‘physics‘, ‘chemistry‘, 1997, 2000] list2 = [1, 2, 3 , 4] l = len(list1) print "access len function to get the length of list1" print l # + operator print list1 + list2 list3 = list1 + list2 print "list3:", list3 # * operator list4 = [‘hhhh‘] * 4 print list4 #traverse print "traverse list1:" for x in list1: print x #confirm x in list print "confirm x in list" print 2 in list1 print 1997 in list1
此外,还可以通过min和max函数来获取列表的最大最小值,count函数用以计算某元素在列表中的出现次数,remove来移除匹配到的数据,sort函数进行排序,reverse函数进行逆序,这些可以在list的官方文档中查询到。
Subsection Two: 元组
元组的创建根列表的很类似,但是它用括号进行创建:
""" Tuples ------------------------------ """ tup1 = (1, 2, 3, "Google") print tup1 tup2 = (‘flesh‘,) print tup2
细心的小伙伴们可能会看到,我在创建第二个tuples的时候,里面虽然只有一个元素,但是,我还是用了一个逗号,其实,这是很有必要的,虽然不加也不会有编译错误,在这部分代码中。但是,在其他情况则不一定了,比如,我们使用元组作为返回参数,如果不加逗号,但是返回的元组中只有一个数据,比如26,那么,计算机就会因为无法识别该元素是数字26还是元组26。因此,加上是必要的,也有助于我们养成良好的编程习惯。
元组的访问呢与列表是一样的,因为它们俩都是python中最为常见的序列结构,在这里不做赘述,有兴趣的小伙伴可以自己去尝试一下下,值得注意的是,访问时的形式与列表的相同,不是L(index)的方式,而是L[index]。
此外,在元组中,对相关数据的修改是非法的,如下所示:
print "modify the data at index 2" tup1[2] = 100 print tup1
所以给位小伙伴们在使用元组时一定要注意呀!
但是元组中,可以使用"+"以及"*"两个操作符来进行对元组的修改。
其余的相关方法如len等,而这类似,可以通过查阅文档来了解。
Section Two: Numpy库的使用(后续补充,要吃饭了23333)