2024/01/23
5036

Python陣列是什麼?完整解析一維/二維/多維陣列、list、tuple!

Python陣列是什麼?完整解析一維/二維/多維陣列、list、tuple!
文©林俊志 老師
Python作為一個多用途、簡潔易讀的程式語言,具有豐富的資料處理功能。在基本的程式裡一個變數只能代表一個資料,當面對眾多資料時該怎麼辦?我們就需要像容器一樣的陣列來把這些資料收集中在一起,變成一個變數來代表這一群資料。
而其中的陣列概念在資料處理中扮演著重要的角色,包括一維陣列、二維陣列、多維陣列,Python除了有List列表、tuple元組的基本元件外,還有強大的套件:NumPy和Pandas來幫我們變成資料科學家。

什麼是Python陣列?Python陣列的基本作用和用途

Python陣列是一種重要且強大的資料結構,用於儲存和處理數據。與列表(List)和元組(Tuple)不同,陣列通常用於處理數值型數據,例如科學計算、數據分析等領域。陣列的基本作用是提供一種高效的方式來操作大量數據,並且支援許多數學和統計運算。
生活中的例子可以是一個溫度記錄陣列,儲存每天的氣溫數據,以便進行分析和預測。List是一個動態陣列,它能夠儲存不同類型的元素,使得資料的組織和操作變得相對簡單。舉例來說,想像你有一個列表表示一星期七天的活動安排:
week_schedule = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
這樣的List就像是一個盒子,裡面裝滿了各種活動。你可以透過索引來取得第幾天的內容,例如 week_schedule[0] 就是星期一。

如何建立Python陣列?索引和取值?

陣列是一種有序的、固定大小的數據結構,它包含相同類型的元素。當我們需要處理大量相似的資料時,一維陣列就變得相當實用。在Python中,我們可以使用NumPy套件來建立和操作Python陣列。例如,我們可以這樣建立一個一維陣列:
import numpy as np
temperature_data = np.array([25, 28, 22, 30, 26])
這樣,我們就建立了一個包含不同日期氣溫的一維陣列。接著,我們可以使用索引也就是第幾個位置來取得陣列中的元素,例如取得第三天的氣溫:
third_day_temperature = temperature_data[2]
注意,索引值是從0開始起算喔!

不同類型的Python陣列:一維陣列、二維陣列、多維陣列

Python陣列有多種形式,包括一維陣列、二維陣列和多維陣列。一維陣列類似於列表,而二維陣列則可以想像成一個表格,多維陣列則可以擴展到更高維度的數據。舉例而言:

二維陣列:

可以用來表示一個簡單的矩陣,想像一個成績單,就可以使用二維陣列來表示:
grades = [
    ['Alice', 95, 87, 90],
    ['Bob', 89, 92, 78],
    ['Charlie', 75, 80, 85]
]
這樣我們可以透過 grades[0][1] 來獲取 Alice 的第一科成績。二維陣列使得資料以表格形式更加直觀。

多維陣列:

需要處理更複雜的資料時,就需要使用多維陣列。例如,考慮一個三維坐標系統:

coordinates = [
    [
        [1, 2, 3],
        [4, 5, 6],
    ],
    [
        [7, 8, 9],
        [10, 11, 12],
    ]
]
這樣的多維陣列可以表示三維空間中的點的座標。或是像我們常做的影像處理就是多維處理的非常典型例子。

Python陣列的常用操作:新增/刪除/插入元素、排序、計算長度

Python陣列支援多種常用操作。舉例而言,我們可以使用NumPy提供的函數來進行元素的新增、刪除和插入:

# 新增元素

new_array = np.append(temperature_data, 28)

# 刪除元素

updated_array = np.delete(temperature_data, 2)

# 插入元素

inserted_array = np.insert(temperature_data, 1, 27)
此外,我們還可以使用不同方式對陣列進行排序:

# 升序排序

sorted_array_asc = np.sort(temperature_data)

# 降序排序

sorted_array_desc = np.sort(temperature_data)[::-1]
同時,陣列的長度可以使用len()函數來取得:

# 計算陣列長度

array_length = len(temperature_data)

對比陣列與列表(List)、陣列與元組(Tuple)的區別

雖然Python的陣列、列表和元組都可以用來儲存數據,但它們之間存在一些重要的區別。陣列主要用於數值計算,提供了更多數學和科學運算的功能。list列表是一種通用的數據結構,可以儲存不同類型的元素,而tuple元組是不可變的內容,一旦建立就無法修改。在一些需要大量數據處理的情境下,陣列的效能優勢就很顯著,例如在機器學習和數據分析中。
在Python中,NumPy是一個強大的數學庫,特別擅長處理陣列。與list相比,NumPy提供更多的數學運算功能,並且更加高效。例如,我們可以使用NumPy計算一維陣列的平均值:
import numpy as np
temperature = np.array([23, 24, 22, 25, 21, 20, 24])
average_temp = np.mean(temperature)
Python與陣列相輔相成,為我們的數據處理之旅提供了堅實的基礎。Python中的陣列概念和相關工具,如list、NumPy等,為資料處理提供了強大的支持。這些工具不僅使得程式設計變得更加簡單,也使得生活中的各種資料更容易被理解和分析。無論是學術研究、工程應用,還是日常生活中的問題解決,Python陣列的相關功能都能夠發揮重要的作用。若您對Python有興趣,推薦您可透過Python課程獲取更深的認識哦!
林俊志老師

林俊志 老師

巨匠電腦 - 資安網管講師
專長:
程式設計:微軟.NET、C、C++、Java;手機開發:Android;物聯網開發:智慧物聯開發、機器人程式開發,已經有眾多學生就職於相關產業。
⏰近期開課

免費學習資源不漏接

加巨匠電腦LINE好友
近期文章你可能有興趣的文章
×
提醒鈴鐺
【官網限定好禮】
免費體驗課程,熱門主題任你選!
熱門課程任選 免費體驗!
體驗課程
arrow_upward