導航:首頁 > 編程語言 > python多維元組尺寸

python多維元組尺寸

發布時間:2024-07-14 03:18:12

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對象。元組是一種序列,就像列表一樣;列表通常用來存儲相同類型的數據;而元組在實際開發中,通常用來存儲不同類型的數據。

②元組和列表之間的主要區別是元組不能像列表那樣改變元素的值,可以簡單地理解為「只讀列表」。 元組使用小括弧 -(),而列表使用方括弧 -[];

③元組創建很簡單,只需要在括弧中添加元素,並使用逗號隔開即可。

<p class="ztext-empty-paragraph">


python元組構建了對象的簡單組合,元組與列表非常相似,但元組不能在原位置修改,通常寫成包在圓括弧中的一系列項,且具有列表的大多數屬性。

元組是:

C. python怎麼操作多維數組元素

在Python中,一個像這樣的多維表格可以通過「序列的序列」實現。一個表格是行的序列。每一行又是獨立單元格的序列。這類似於我們使用的數學記號,在數學里我們用Ai,j,而在Python里我們使用A[i][j],代表矩陣的第i行第j列。



這看起來非常像「元組的列表」(Lists of Tuples)。



「列表的列表」示例:



我們可以使用嵌套的列表推導式(list comprehension)創建一個表格。 下面的例子創建了一個「序列的序列」構成的表格,並為表格的每一個單元格賦值。


table= [ [ 0 for i in range(6) ] for j in range(6) ]
print table
for d1 in range(6):
for d2 in range(6):
table[d1][d2]= d1+d2+2
print table
123456

程序的輸出結果如下:


[[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0],


[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]],


[[2, 3, 4, 5, 6, 7], [3, 4, 5, 6, 7, 8], [4, 5, 6, 7, 8, 9],


[5, 6, 7, 8, 9, 10], [6, 7, 8, 9, 10, 11], [7, 8, 9, 10, 11, 12]]


1234



這個程序做了兩件事:創建了一個6 × 6的全0表格。 然後使用兩枚骰子的可能組合的數值填充表格。 這並非完成此功能最有效的方式,但我們通過這個簡單的例子來演示幾項技術。我們仔細看一下程序的前後兩部分。



程序的第一部分創建並輸出了一個包含6個元素的列表,我們稱之為「表格」;表格中的每一個元素都是一個包含6個0元素的列表。它使用列表推導式,對於范圍從0到6的每一個j都創建對象。每一個對象都是一個0元素列表,由i變數從0到6遍歷產生。初始化完成之後,列印輸出二維全0表格。



推導式可以從里向外閱讀,就像一個普通表達式一樣。內層列表[ 0 for i in range(6) ]創建了一個包含6個0的簡單列表。外層列表[ [...] for j in range(6) ]創建了這些內層列表的6個深拷貝。



程序的第2個部分對2個骰子的每一個組合進行迭代,填充表格的每一個單元格。這由兩層嵌套循環實現,每一個循環迭代一個骰子。外層循環枚舉第一個骰子的所有可能值d1。內層循環枚舉第二個骰子d2。



更新每一個單元格時需要通過table[d1]選擇每一行;這是一個包含6個值的列表。這個列表中選定的單元格通過...[d2]進行選擇。我們將擲骰子的值賦給這個單元格,d1+d2+2。



其他示例:



列印出的列表的列表不太容易閱讀。下面的循環會以一種更加可讀的形式顯示表格。



for row in table:




print row


[2, 3, 4, 5, 6, 7]


[3, 4, 5, 6, 7, 8]


[4, 5, 6, 7, 8, 9]


[5, 6, 7, 8, 9, 10]


[6, 7, 8, 9, 10, 11]


[7, 8, 9, 10, 11, 12]


12345678910111213

作為練習,讀者可以試著在列印列表內容時,再列印出行和列的表頭。提示一下,使用"%2d" % value字元串運算符可以列印出固定長度的數字格式。顯示索引值(Explicit Index Values)。



我們接下來對骰子表格進行匯總統計,得出累計頻率表。我們使用一個包含13個元素的列表(下標從0到12)表示每一個骰子值的出現頻率。觀察可知骰子值2在矩陣中只出現了一次,因此我們期望fq[2]的值為1。遍歷矩陣中的每一個單元格,得出累計頻率表。


fq= 13 * [0]
for i in range(6):
for j in range(6):
c= table[i][j]
fq[ c ] += 1
12345

使用下標i選出表格中的行,用下標j從行中選出一列,得到單元格c。然後用fq統計頻率。



這看起來非常的數學和規范。

D. Python——ndarray多維數組基本操作(1)

數組允許進行批量操作而無需使用for循環,因此更加簡便,這種特性也被稱為向量化。任何兩個等尺寸之間的算術操作都應用逐元素操作的方式進行。

同尺度數組之間的比較,會產生一個布爾型數組。

上述操作均是在同尺度數組之間進行的,對於不同尺度數組間的操作,會使用到廣播特性。

索引:獲取數組中特定位置元素的過程;
切片:獲取數組元素子集的過程。

new_a = a.astype(new_type)

astype()方法一定會創建新的數組(原始數據的一個拷貝),即使兩個類型一致。

ls = a.tolist()

轉置是一種特殊的數據重組形式,可以返回底層數據的視圖而不需要復制任何內容。
數組擁有 transpose 方法,也有特殊的 T 屬性。

對於更高緯度的數組, transpose 方法可以接受包含軸編號的元組,用於轉置軸。

ndarray的 swapaxes 方法,通過接受一對軸編號作為參數,並對軸進行調整用於重組數據。
swapaxes 方法返回的是數據的視圖,而沒有對數據進行復制。

Reference:
《Python for Data Analysis:Data Wrangling with Pandas,Numpy,and IPython》

閱讀全文

與python多維元組尺寸相關的資料

熱點內容
解壓球怎麼過 瀏覽:674
時間伺服器埠為什麼要123 瀏覽:361
思科帶寬配置的命令 瀏覽:51
壓縮模量孔隙比 瀏覽:689
安卓開發如何分析日誌 瀏覽:876
單片機編程小燈 瀏覽:274
oppor9s怎麼給軟體加密 瀏覽:35
java技術平台 瀏覽:181
福昕pdf合成 瀏覽:203
命令性幻聽需要治幾年 瀏覽:866
docker安裝phpfpm 瀏覽:511
智能程序員入門教程 瀏覽:696
長興製作個人網站用什麼app 瀏覽:586
夜晚解壓方式 瀏覽:50
python判斷類型dict 瀏覽:959
設計加密系統示意圖 瀏覽:536
思譯是什麼app 瀏覽:663
pb編譯後直接打開沒效果 瀏覽:757
iframe調用源碼 瀏覽:145
安卓游戲怎麼錄音 瀏覽:931