《利用Python進行數(shù)據(jù)分析·第2版》 附錄A NumPy高級應用
2018-05-06 00:07 作者:絕不原創(chuàng)的飛龍 | 我要投稿

在這篇附錄中,我會深入NumPy庫的數(shù)組計算。這會包括ndarray更內部的細節(jié),和更高級的數(shù)組操作和算法。
這章包括了一些雜亂的章節(jié),不需要仔細研究。
A.1 ndarray對象的內部機理
NumPy的ndarray提供了一種將同質數(shù)據(jù)塊(可以是連續(xù)或跨越)解釋為多維數(shù)組對象的方式。正如你之前所看到的那樣,數(shù)據(jù)類型(dtype)決定了數(shù)據(jù)的解釋方式,比如浮點數(shù)、整數(shù)、布爾值等。
ndarray如此強大的部分原因是所有數(shù)組對象都是數(shù)據(jù)塊的一個跨度視圖(strided view)。你可能想知道數(shù)組視圖arr[::2,::-1]不復制任何數(shù)據(jù)的原因是什么。簡單地說,ndarray不只是一塊內存和一個dtype,它還有跨度信息,這使得數(shù)組能以各種步幅(step size)在內存中移動。更準確地講,ndarray內部由以下內容組成:
一個指向數(shù)據(jù)(內存或內存映射文件中的一塊數(shù)據(jù))的指針。
數(shù)據(jù)類型或dtype,描述在數(shù)組中的固定大小值的格子。
一個表示數(shù)組形狀(shape)的元組。
一個跨度元組(stride),其中的整數(shù)指的是為了前進到當前維度下一個元素需要“跨過”的字節(jié)數(shù)。
圖A-1簡單地說明了ndarray的內部結構。

閱讀全文:http://t.cn/Rudcl1g
標簽: