南京飛酷網絡帶你了解:Python列表 VS Numpy數組
2024-06-04 加入收藏
相同點
Python列表和NumPy數組都是在Python編程語言中使用的基本數據結構。
它們都可以存儲和訪問多個元素,并支持在序列中進行索引、切片和迭代等操作。
此外,它們還都可以通過循環和條件語句來處理數據,以及使用函數和方法對它們進行修改和轉換。
它們都可以通過函數和方法進行排序、合并和拆分等常見操作。
import numpy as np
# 創建一個Python列表和NumPy數組
my_list = [1, 2, 3, 4, 5]
my_array = np.array([1, 2, 3, 4, 5])
# 打印列表和數組
print("Python列表:", my_list)
print("NumPy數組:", my_array)
# 結果
# Python列表: [1, 2, 3, 4, 5]
# NumPy數組: [1 2 3 4 5]
# 訪問列表和數組中的元素
print("列表第一個元素:", my_list[0])
print("數組第一個元素:", my_array[0])
# 結果
# 列表第一個元素: 1
# 數組第一個元素: 1
# 使用循環對列表和數組進行迭代
for element in my_list:
print("Python列表的元素:", element)
for element in my_array:
print("NumPy數組的元素:", element)
# 結果
# Python列表的元素: 1
# Python列表的元素: 2
# Python列表的元素: 3
# Python列表的元素: 4
# Python列表的元素: 5
# NumPy數組的元素: 1
# NumPy數組的元素: 2
# NumPy數組的元素: 3
# NumPy數組的元素: 4
# NumPy數組的元素: 5
# 使用內置函數和方法對列表和數組進行操作
print("列表的總和:", sum(my_list))
print("數組的總和:", np.sum(my_array))
# 結果
# 列表的總和: 15
# 數組的總和: 15
不同點
數據類型
NumPy數組是一個由同類型數據元素組成的多維數組;
Python列表則可以包含任何類型的對象,包括數字、字符串和其他Python對象。
內存使用
NumPy數組在內存中存儲為連續的塊,因此比Python列表更有效地使用內存;
NumPy數組可以使用原地操作來修改其內容,這意味著它們可以在不創建新數組的情況下執行許多操作。
import numpy as np
import sys
# 創建一個包含10000個整數的Python列表
my_list = list(range(10000))
# 創建一個包含10000個整數的NumPy數組
my_array = np.array(range(10000))
# 查看Python列表和NumPy數組在內存中所占用的空間
print("Python列表占用內存:", sys.getsizeof(my_list))
print("NumPy數組占用內存:", my_array.nbytes)
# 輸出
# Python列表占用內存:80056
# NumPy數組占用內存:40000
算術操作
NumPy數組支持矢量化操作和廣播,這使得對整個數組執行算術和數學操作更為簡單和高效;
Python列表需要使用循環來執行這些操作。
import numpy as np
# 使用NumPy數組進行加法
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = a + b
print(c) # 輸出 [5 7 9]
# 使用Python列表進行加法
a = [1, 2, 3]
b = [4, 5, 6]
c = []
for i in range(len(a)):
c.append(a[i] + b[i])
print(c) # 輸出 [5, 7, 9]
運行速度
NumPy數組是經過優化的C代碼實現的,因此它們通常比Python列表更快。
對于大型數據集和復雜的計算,使用NumPy數組通常會更有效率。
相互轉換
Python列表轉換為NumPy數組
import numpy as np
# 創建一個Python列表
my_list = [1, 2, 3, 4, 5]
# 將Python列表轉換為NumPy數組
my_array = np.array(my_list)
# 輸出轉換后的NumPy數組
print(my_array)
# 輸出
# [1 2 3 4 5]
NumPy數組轉換為Python列表
import numpy as np
# 創建一個NumPy數組
my_array = np.array([1, 2, 3, 4, 5])
# 將NumPy數組轉換為Python列表
my_list = my_array.tolist()
# 輸出轉換后的Python列表
print(my_list)
# 輸出
# [1, 2, 3, 4, 5]
總結
如果需要進行科學計算、數據分析和數值處理,NumPy是一種強大的工具;
如果只需要簡單地存儲和操作數據,Python列表則是一種更為通用和靈活的選擇。