码迷,mamicode.com
首页 > 编程语言 > 详细

python常用序列list、tuples及矩阵库numpy的使用

时间:2018-04-04 15:05:40      阅读:300      评论:0      收藏:0      [点我收藏+]

标签:opera   括号   序列   使用进行   function   本质   dex   分享   googl   

近期开始学习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])
View Code

技术分享图片

而在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:]
View Code

技术分享图片

 

从上面两种方式,其实可以看到,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
View Code

技术分享图片

可以看到,使用del函数将索引为2的数据删除了,此外,del函数还能结合之前提到的访问数组的方式来删除相关元素,如:

技术分享图片
del list1[1:]
print "after deleting value by list1[1:]", list1
View Code

技术分享图片

同理,采用起始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
View Code

技术分享图片

此外,还可以通过min和max函数来获取列表的最大最小值,count函数用以计算某元素在列表中的出现次数,remove来移除匹配到的数据,sort函数进行排序,reverse函数进行逆序,这些可以在list的官方文档中查询到。

  Subsection Two: 元组

  元组的创建根列表的很类似,但是它用括号进行创建:

技术分享图片
"""
Tuples
------------------------------
"""

tup1 = (1, 2, 3, "Google")
print tup1

tup2 = (flesh,)
print tup2
View Code

技术分享图片

细心的小伙伴们可能会看到,我在创建第二个tuples的时候,里面虽然只有一个元素,但是,我还是用了一个逗号,其实,这是很有必要的,虽然不加也不会有编译错误,在这部分代码中。但是,在其他情况则不一定了,比如,我们使用元组作为返回参数,如果不加逗号,但是返回的元组中只有一个数据,比如26,那么,计算机就会因为无法识别该元素是数字26还是元组26。因此,加上是必要的,也有助于我们养成良好的编程习惯。

元组的访问呢与列表是一样的,因为它们俩都是python中最为常见的序列结构,在这里不做赘述,有兴趣的小伙伴可以自己去尝试一下下,值得注意的是,访问时的形式与列表的相同,不是L(index)的方式,而是L[index]。

此外,在元组中,对相关数据的修改是非法的,如下所示:

技术分享图片
print "modify the data at index 2"
tup1[2] = 100
print tup1
View Code

技术分享图片

所以给位小伙伴们在使用元组时一定要注意呀!

但是元组中,可以使用"+"以及"*"两个操作符来进行对元组的修改。

其余的相关方法如len等,而这类似,可以通过查阅文档来了解。

Section Two: Numpy库的使用(后续补充,要吃饭了23333)

python常用序列list、tuples及矩阵库numpy的使用

标签:opera   括号   序列   使用进行   function   本质   dex   分享   googl   

原文地址:https://www.cnblogs.com/sgatbl/p/8716492.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!