在這篇附錄中,我會深入NumPy庫的數組計算。這會包括ndarray更內部的細節,和更高級的數組操作和算法。
本章包括了一些雜亂的章節,不需要仔細研究。
NumPy的ndarray提供了一種將同質數據塊(可以是連續或跨越)解釋為多維數組對象的方式。正如你之前所看到的那樣,數據類型(dtype)決定了數據的解釋方式,比如浮點數、整數、布爾值等。
ndarray如此強大的部分原因是所有數組對象都是數據塊的一個跨度視圖(strided view)。你可能想知道數組視圖arr[::2,::-1]不復制任何數據的原因是什麼。簡單地說,ndarray不只是一塊內存和一個dtype,它還有跨度信息,這使得數組能以各種步幅(step size)在內存中移動。更准確地講,ndarray內部由以下內容組成:
圖A-1簡單地說明了ndarray的內部結構。
例如,一個10×5的數組,其形狀為(10,5):