文©林俊志 老師
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課程獲取更深的認識哦!