python常用序列list、tuples及矩陣庫numpy的使用
近期開始學習python機器學習的相關知識,為了使後續學習中避免編程遇到的基礎問題,對python數組以及矩陣庫numpy的使用進行總結,以此來加深和鞏固自己以前所學的知識。
Section One:Python數組的使用
在python中,數組這個概念其實已經被淡化了,取之的是元組和列表,下面就列表和元組進行相關的總結和使用。
Subsection One: List
list列表本質是一種序列類型的數據結構,有點類似於C/C++中所學的數組,但又不同。他們的相同之處在於,二者中的每個元素都分配有一個索引值來進行訪問,如:
1 #python list 2 list1 = [‘physicsView Code‘, ‘chemistry‘, 1997, 2000] 3 print(list1[0])
而在C/C++中我們知道,數組也可以通過這種數組名加索引值的方式來訪問,在此不做贅述。
但是,細心的話,我們會發現,python中的列表與C/C++中有所不同,它可以包含不同的數據類型,而C/C++中則不可以。此外,在上面的代碼中,我們可以看到,二者有著相同的創建方式。
但在python中,對於list列表類型的訪問,有著不同的方式,下面就列表的訪問進行總結:
1 """List: 2 -------------------------------- 3 """ 4 # create a listView Code5 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", list1View Code
可以看到,使用del函數將索引為2的數據刪除了,此外,del函數還能結合之前提到的訪問數組的方式來刪除相關元素,如:
del list1[1:] print "after deleting value by list1[1:]", list1View 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 list1View Code
此外,還可以通過min和max函數來獲取列表的最大最小值,count函數用以計算某元素在列表中的出現次數,remove來移除匹配到的數據,sort函數進行排序,reverse函數進行逆序,這些可以在list的官方文檔中查詢到。
Subsection Two: 元組
元組的創建根列表的很類似,但是它用括號進行創建:
""" Tuples ------------------------------ """ tup1 = (1, 2, 3, "Google") print tup1 tup2 = (‘flesh‘,) print tup2View Code
細心的小夥伴們可能會看到,我在創建第二個tuples的時候,裏面雖然只有一個元素,但是,我還是用了一個逗號,其實,這是很有必要的,雖然不加也不會有編譯錯誤,在這部分代碼中。但是,在其他情況則不一定了,比如,我們使用元組作為返回參數,如果不加逗號,但是返回的元組中只有一個數據,比如26,那麽,計算機就會因為無法識別該元素是數字26還是元組26。因此,加上是必要的,也有助於我們養成良好的編程習慣。
元組的訪問呢與列表是一樣的,因為它們倆都是python中最為常見的序列結構,在這裏不做贅述,有興趣的小夥伴可以自己去嘗試一下下,值得註意的是,訪問時的形式與列表的相同,不是L(index)的方式,而是L[index]。
此外,在元組中,對相關數據的修改是非法的,如下所示:
print "modify the data at index 2" tup1[2] = 100 print tup1View Code
所以給位小夥伴們在使用元組時一定要註意呀!
但是元組中,可以使用"+"以及"*"兩個操作符來進行對元組的修改。
其余的相關方法如len等,而這類似,可以通過查閱文檔來了解。
Section Two: Numpy庫的使用(後續補充,要吃飯了23333)
python常用序列list、tuples及矩陣庫numpy的使用