python 高维数据_Python数据分析入门|利用NumPy高效处理高维数据
生活随笔
收集整理的這篇文章主要介紹了
python 高维数据_Python数据分析入门|利用NumPy高效处理高维数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
矢量化
NumPy數組可以將許多數據處理任務表述為簡潔的數組表達式,否則需要編寫循環。用數組表達式代替循環的做法,通常被稱為矢量化。通常矢量化數組運算要比等價的純Python方式快上一兩個數量級,尤其是各種數值計算。
假設我們想要在一組值(網格型)上計算函數sqrt(x^2 + y^2)。np.meshgrid()函數接受兩個一維數組,并產生兩個二維矩陣,對應于兩個數組中所有的(x, y)對。
points = np.arange(-5, 5, 0.01) #1000個間隔相等的點。xs, ys = np.meshgrid(points, points)z = np.sqrt(xs ** 2 + ys ** 2)將條件邏輯表述為數組運算
- np.where()函數是三元表達式 x if condition else y的矢量化版本。假設我們有一個布爾數組和兩個值數組:
- 這有一些問題。第一,它對大數組的處理速度不是很快;第二,無法用于多維數組。若使用np.where(),則可以將該功能寫得非常簡潔。
- np.where()的第二個和第三個參數不必是數組,也可以是標量值。where()通常用于根據另一個數組產生一個新的數組。
- np.where()可以表述更加復雜的邏輯。
數學和統計方法
用于布爾型數組的方法
- 在使用基本統計方法時,布爾值會被強制轉換為1和0,因此sum經常被用來對布爾型數據中的True值計數。
- 另外還有兩個方法any()和all(),它們對布爾型數組非常有用。any()用于測試數組中是否存在一個或多個True,而all()則檢查數組中所有制是否都是True,兩個方法均返回布爾值結果。這兩個方法也可用于非布爾型數組,所有非0元素均會被當作True。
排序
- 與Python內置的列表類型一樣,NumPy數組也可以通過sort方法就地排序(會對原數組進行操作)。
- 多維數組可以在任何一個軸向上進行排序,只需將軸編號傳給sort即可。
- 頂級方法np.sort()返回的是數組的已排序副本,而就地排序則會修改數組本身。計算數組分位數最簡單的方法是對其進行排序,然后取特定位置的值:
唯一化以及其他的集合邏輯。
- NumPy提供了一些針對一維ndarray()的基本集合運算,最常用的可能要數np.unique()了,它用于找出數組中的唯一值并返回已排序的結果。
- 拿跟np.unique()等價的純Python代碼對比一下:
- 另一個函數np.in1d()用于測試一個數組中的值在另一個數組中的成員資格,返回一個布爾型數組:
總結
以上是生活随笔為你收集整理的python 高维数据_Python数据分析入门|利用NumPy高效处理高维数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php怎么访问数据库服务器(php怎么访
- 下一篇: python弹出窗口 闪烁_Python