NumPy數據處理詳解的筆記2
第1章NumPy基礎
NumPy是用于處理多維數組的數值運算庫,不僅可用于
機器學習,還可以用于圖像處理,語言處理等任務。
1.2 多維數據結構ndarray的基礎
在學習NumPy的過程中,只要理解了ndarray的相關知識,
就能夠編寫出高性能,更加節省內存空間的代碼。
1.2.1 ndarray
ndarray就是用于對包含同樣屬性同樣大小的元素的多維
數組進行處理的一個Python類。
1.2.2 屬性
T????? 返回經過轉置的矩陣,當維度小于2,返回原數組
dtype? ndarray中元素的類型
size?? 元素的數量
ndim?? 維度
shape? 使用元組表示的ndarray的形狀
1.2.3 內存布局
使用ndarray類生成的實例在內存中是以一維數組的形式
進行存儲的。先保存用于描述數據的類型,形狀等信息的
元數據,再保存數組本身的數據,有行主序和列主序兩種
排序方式。
1.2.4 步長
在使用字節數表示訪問每個元素時,這個在內存空間中所需
移動的距離的屬性稱為步長。
1.2.5 廣播
ndarray的一大特點是對廣播功能的支持。
1.3 廣播
1.3.1 何為廣播
例如,對兩個數組中的元素進行加法運算時,可能會遇到這兩個
數組的形狀不一致的問題。所謂廣播就是對這個情況中的數組形
狀進行調整。
1.3.2 廣播的運行機制
規則1:在作為廣播對象的數組中,如果維數不同,在其shape的
?????? 開頭加入1,以對形狀進行調整。
規則2:可以廣播的條件是每個維度的元素數量與最大數量相同或者為1。
規則3:結果中所輸出的數組形狀,會根據每個維度中元素的最大值進行調整
規則4:對于元素數量為1的維度所在的軸,使用相同的值進行重復填充。