2016-03-06 90 views
6

爲什麼我們用numpy數組代替python中的簡單數組?他們之間的主要區別是什麼?NumPy數組和簡單Python數組有什麼區別?

+4

你是什麼意思的數組?你真的是指[數組](https://docs.python.org/3/library/array.html)還是你想說'list'('[1,2,3]'是一個列表,而不是數組)? –

+2

如果您確實指數組,請澄清。 – jonrsharpe

回答

2

Numpy數組是一個類型數組,內存中的數組存儲一個均勻的,密集的數字。

Python列表是一個異構列表,內存中的列表存儲對象的引用而不是數字本身。

這意味着每當代碼需要訪問數字時,Python列表都需要解引用指針。雖然numpy數組可以通過numpy向量操作直接處理,這使得這些向量操作比您可以使用list進行編碼的任何操作都快得多。

numpy數組的缺點是,如果您需要訪問數組中的單個項目,numpy將需要將數字裝箱/取消裝箱到一個python數值對象中,這可能會使其在某些情況下變慢;並且它不能保存異構數據。

+2

對於* list *,這是真的,但不是* array *,它也存在於標準庫中。 – jonrsharpe