A. 利用python進行數據分析筆記:3.1數據結構
元組是一種固定長度、不可變的Python對象序列。創建元組最簡單的辦法是用逗號分隔序列值:
tuple 函數將任意序列或迭代器轉換為元組:
中括弧 [] 可以獲取元組的元素, Python中序列索引從0開始 :
元組一旦創建,各個位置上的對象是無法被修改的,如果元組的一個對象是可變的,例如列表,你可以在它內部進行修改:
可以使用 + 號連接元組來生成更長的元組:
元組乘以整數,則會和列表一樣,生成含有多份拷貝的元組:
將元組型的表達式賦值給變數,Python會對等號右邊的值進行拆包:
拆包的一個常用場景就是遍歷元組或列表組成的序列:
*rest 用於在函數調用時獲取任意長度的位置參數列表:
count 用於計量某個數值在元組中出現的次數:
列表的長度可變,內容可以修改。可以使用 [] 或者 list 類型函數來定義列表:
append 方法將元素添加到列表尾部:
insert 方法可以將元素插入到指定列表位置:
( 插入位置范圍在0到列表長度之間 )
pop 是 insert 的反操作,將特定位置的元素移除並返回:
remove 方法會定位第一個符合要求的值並移除它:
in 關鍵字可以檢查一個值是否在列表中;
not in 表示不在:
+ 號可以連接兩個列表:
extend 方法可以向該列表添加多個元素:
使用 extend 將元素添加到已經存在的列表是更好的方式,比 + 快。
sort 方法可以對列表進行排序:
key 可以傳遞一個用於生成排序值的函數,例如通過字元串的長度進行排序:
bisect.bisect 找到元素應當被插入的位置,返回位置信息
bisect.insort 將元素插入到已排序列表的相應位置保持序列排序
bisect 模塊的函數並不會檢查列表是否已經排序,因此對未排序列表使用bisect不會報錯,但是可能導致不正確結果
切片符號可以對大多數序列類型選取子集,基本形式是 [start:stop]
起始位置start索引包含,結束位置stop索引不包含
切片還可以將序列賦值給變數:
start和stop可以省略,默認傳入起始位置或結束位置,負索引可以從序列尾部進行索引:
步進值 step 可以在第二個冒號後面使用, 意思是每隔多少個數取一個值:
對列表或元組進行翻轉時,一種很聰明的用法時向步進值傳值-1:
dict(字典)可能是Python內建數據結構中最重要的,它更為常用的名字是 哈希表 或者 關聯數組 。
字典是鍵值對集合,其中鍵和值都是Python對象。
{} 是創建字典的一種方式,字典中用逗號將鍵值對分隔:
你可以訪問、插入或設置字典中的元素,:
in 檢查字典是否含有一個鍵:
del 或 pop 方法刪除值, pop 方法會在刪除的同時返回被刪的值,並刪除鍵:
update 方法將兩個字典合並:
update方法改變了字典元素位置,對於字典中已經存在的鍵,如果傳給update方法的數據也含有相同的鍵,則它的值將會被覆蓋。
字典的值可以是任何Python對象,但鍵必須是不可變的對象,比如標量類型(整數、浮點數、字元串)或元組(且元組內對象也必須是不可變對象)。
通過 hash 函數可以檢查一個對象是否可以哈希化(即是否可以用作字典的鍵):
集合是一種無序且元素唯一的容器。
set 函數或者是用字面值集與大括弧,創建集合:
union 方法或 | 二元操作符獲得兩個集合的聯合即兩個集合中不同元素的並集:
intersection 方法或 & 操作符獲得交集即兩個集合中同時包含的元素:
常用的集合方法列表:
和字典類似,集合的元素必須是不可變的。如果想要包含列表型的元素,必須先轉換為元組:
B. 【Python基礎】Python基礎數據結構都有哪些
列表(list)
字典(dict)
元組(tuple)
集合(set)
C. python涓夌嶆牳蹇冩暟鎹緇撴瀯
python涓夌嶆牳蹇冩暟鎹緇撴瀯濡備笅錛
1銆佸垪琛ㄣ俵ist鏄澶勭悊涓緇勬湁搴忛」鐩鐨勬暟鎹緇撴瀯錛屽嵆浣犲彲浠ュ湪涓涓鍒楄〃涓瀛樺偍涓涓搴忓垪鐨勯」鐩銆傚垪琛ㄤ腑鐨勯」鐩銆傚垪琛ㄤ腑鐨勯」鐩搴旇ュ寘鎷鍦ㄦ柟鎷鍙蜂腑錛岃繖鏍穚ython灝辯煡閬撲綘鏄鍦ㄦ寚鏄庝竴涓鍒楄〃銆備竴鏃︿綘鍒涘緩浜嗕竴涓鍒楄〃錛屼綘灝卞彲浠ユ坊鍔狅紝鍒犻櫎錛屾垨鑰呮槸鎼滅儲鍒楄〃涓鐨勯」鐩銆傜敱浜庝綘鍙浠ュ炲姞鎴栧垹闄ら」鐩錛屾垜浠璇村垪琛ㄦ槸鍙鍙樼殑鏁版嵁綾誨瀷錛屽嵆榪欑嶇被鍨嬫槸鍙浠ヨ鏀瑰彉鐨勶紝騫朵笖鍒楄〃鏄鍙浠ュ祵濂楃殑銆
2銆佸厓緇勩傚厓緇勫拰鍒楄〃鍗佸垎鐩鎬技錛屼笉榪囧厓緇勬槸涓嶅彲鍙樼殑銆傚嵆浣犱笉鑳戒慨鏀瑰厓緇勩傚厓緇勯氳繃鍦嗘嫭鍙蜂腑鐢ㄩ楀彿鍒嗛殧鐨勯」鐩瀹氫箟銆傚厓緇勯氬父鐢ㄥ湪浣胯鍙ユ垨鐢ㄦ埛瀹氫箟鐨勫嚱鏁拌兘澶熷畨鍏ㄧ殑閲囩敤涓緇勫肩殑鏃跺欙紝鍗寵浣跨敤鐨勫厓緇勭殑鍊間笉浼氭敼鍙樸傚厓緇勫彲浠ュ祵濂椼
3銆佸瓧鍏搞傚瓧鍏哥被浼間簬浣犻氳繃鑱旂郴浜哄悕縐版煡鎵懼湴鍧鍜岃仈緋諱漢璇︾粏鎯呭喌鐨勫湴鍧綈匡紝鍗籌紝鎴戜滑鎶婇敭錛堝悕瀛楋級鍜屽礆紙璇︾粏鎯呭喌錛夎仈緋誨湪涓璧楓傛敞鎰忥紝閿蹇呴』鏄鍞涓鐨勶紝灝卞儚濡傛灉鏈変袱涓浜烘伆宸у悓鍚嶇殑璇濓紝浣犳棤娉曟壘鍒版g『鐨勪俊鎮銆
瀛︿範Python鐨勬敞鎰忎簨欏廣
1銆佹墦濂藉熀紜銆傚凡緇忛夋嫨浜哖ython榪欎竴闂ㄥ︾戱紝灝辮佸潥瀹氬︿笅鍘葷殑鍐沖績錛屾墦濂藉熀紜寰堥噸瑕併備篃璁鎬竴寮濮嬩細瑙夊緱榪欎篃涓嶆噦閭d篃涓嶆噦錛岀‖鐫澶寸毊鍧氭寔涓嬪幓銆傚洜涓篜ython鏄涓涓鏈夋潯鐞嗙殑銆佸己澶х殑闈㈠悜瀵硅薄鐨勭▼搴忚捐¤璦錛屽﹀ソ鍩虹鐭ヨ瘑鏄鍓嶆彁銆
2銆丳ython鐨勫熀紜鐭ヨ瘑鍖呮嫭錛氫笅杞姐佸畨瑁呫佸煎叆搴撱佸瓧絎︿覆澶勭悊銆佸嚱鏁頒嬌鐢ㄧ瓑絳夈傚傛灉浣犵殑鑻辮涓嶆槸寰堝ソ錛屽彲浠ラ氳繃鈥滆瘧涓鏂囨枃妗b濊繖涓緗戠珯榪涜岀炕璇戞暣鐞嗐傚綋鐒剁炕璇戝緢楹葷儲錛屽傛灉鎯崇渷鎺夌炕璇戠幆鑺傦紝鍙浠ユ姤涓涓鍩硅鐝錛岃繘琛屼腑鏂囨棤闅滅嶆暀瀛︺
D. 如何用Python高效地學習數據結構
所謂數據結構,是指相互之間存在一種或多種特定關系的數據類型的集合。
Python在數據分析領域中,最常用的數據結構,莫過於DataFrame了,今天我們就介紹如何高效地學習DataFrame這種數據結構。
要學習好一種東西,最好給自己找一個目標,達到了這個目標,我們就是學好了。一般,我在學習一門新的語言的數據結構的時候,一般要求自己達到以下五個要求:
第一個問題:概念,這種數據結構的概念是什麼呢?
第二個問題:定義,如何定義這種數據結構呢?
第三個問題:限制,使用這種數據結構,有什麼限制呢?
第四個問題:訪問,訪問這種數據結構內的數據的方式是什麼呢?
第五個問題:修改,如何對這種數據結構進行增加元素、刪除元素以及修改元素呢?