- AI速成課:從AI編程到構(gòu)建智能軟件
- (阿聯(lián)酋)赫德林·德·龐特維斯
- 957字
- 2020-08-21 17:45:12
3.3 列表和數(shù)組
列表(list)和數(shù)組(array)可以用一個表來表示。想象一個一維(1D)的向量或矩陣。你剛剛想象的就是一個列表或數(shù)組。
列表和數(shù)組可以存儲數(shù)據(jù)。數(shù)據(jù)可以是任何東西:變量、其他列表或數(shù)組(這種情況叫作多維列表或數(shù)組),或某些類的對象(我們之后會學(xué)到)。
比如,以下就是一個包含整數(shù)的一維列表或數(shù)組:
而以下是二維(2D)列表或數(shù)組,同樣包含整數(shù):
創(chuàng)建一個二維列表,就是創(chuàng)建一個包含了多個列表的列表。創(chuàng)建一個列表很容易,就像這樣:
在這里我們創(chuàng)建了4個列表:L1、L2、L3、L4。前兩個列表是空的,它們包含0個元素。接下來的兩個列表包含了一些預(yù)設(shè)的值。L3是一個一維列表,就和第一張圖片中的一樣。L4是一個二維列表,就和第二張圖片一樣。如你所見,L4實際上是由3個更小的一維列表組成的。
本書中提到的數(shù)組通常是指NumPy數(shù)組。NumPy是Python的一個庫(library)。庫指允許你執(zhí)行很多操作卻又不需要從頭寫代碼的提前寫好的程序集。NumPy被廣泛用于列表或數(shù)組的不同操作。你可以把NumPy數(shù)組看作一種特殊的列表,只不過功能更多罷了。
要想創(chuàng)建NumPy數(shù)組,你必須先設(shè)置數(shù)組的尺寸并且使用一個方法進行初始化。舉個例子:
在第一行代碼中,我們導(dǎo)入了NumPy庫(如你所見,要導(dǎo)入一個庫須要用到import關(guān)鍵詞),然后通過用as關(guān)鍵詞將NumPy簡寫為np,這樣以后使用起來會更簡便。接著,我們創(chuàng)建一個5×5的用0填充的新二維數(shù)組,命名為nparray。“.”后面的部分表示初始化方法。本例中,我們初始化這個零數(shù)組的方法是zeros函數(shù)。
為了獲取列表或者數(shù)組中元素的值,你需要明確給出該元素在列表中對應(yīng)位置的索引。例如,如果你想改變L3列表中的第一個元素,你就要先獲得這個元素的索引。在Python中,索引從0開始,所以你應(yīng)該寫L3[0]。事實上,你還可以將print()與它結(jié)合,寫成print(L3[0])。如果執(zhí)行這行代碼,那么如你所預(yù)期的,屏幕上會顯示數(shù)字3。
獲取一個多維列表或數(shù)組中的單個值需要你輸入和維度一樣多的索引值。例如,要從L4列表中獲取0,我們就必須寫L4[1][1]。L4[1]會返回第二行的全部內(nèi)容,同時也是一個列表。
練習(xí)
嘗試找出L4列表中全部數(shù)值的平均值。本練習(xí)有多個答案。
提示:最簡單的解決方案是利用NumPy庫。可以在以下鏈接查找NumPy庫提供的一些函數(shù)——https://docs.scipy.org/doc/numpy/reference/。
本練習(xí)的答案可以在GitHub頁面的Chapter 03/Lists and Arrays/homework.py文件中找到。
[1] 本書并沒有明確區(qū)分Python中的列表和數(shù)組,對于本書而言,在概念上可以將它們視為等效的。——譯者注
- 機器人制作從入門到精通(第3版)
- AI辦公高手速成:工具與提效技巧大全
- 機器人設(shè)計與制作
- 人工智能不會做什么:100億人類與100億機器人共存的未來
- 工業(yè)人工智能
- 人工智能會搶哪些工作
- 秒懂AI編程:零基礎(chǔ)搞定辦公自動化
- ChatGPT速學(xué)通:文案寫作+PPT制作+數(shù)據(jù)分析+知識學(xué)習(xí)與變現(xiàn)
- 深度學(xué)習(xí)之人臉圖像處理:核心算法與案例實戰(zhàn)
- 塊數(shù)據(jù)4.0:人工智能時代的激活數(shù)據(jù)學(xué)
- 計算機視覺的對象級場景理解及其應(yīng)用
- 人工智能原理與應(yīng)用教程
- DeepSeek全場景指南
- 智能計算系統(tǒng)實驗教程
- 洞察AIGC:智能創(chuàng)作的應(yīng)用、機遇與挑戰(zhàn)