Numpy 功能十分強大,,很多我們想要的復(fù)雜操作都有實現(xiàn),。今天分享幾個數(shù)據(jù)分析中經(jīng)常需要用到的重要函數(shù)。掌握這些函數(shù)可以幫助我們保持代碼整潔并且避免重復(fù)造輪子,。 準備工作導(dǎo)入numpyimport numpy as np 示例數(shù)據(jù)本文以二分類任務(wù)為例,通常我們的model會輸出預(yù)測的概率,,得到概率后需要進行后續(xù)的處理,,比如: ·根據(jù)閾值,將概率大于某個閾值的label設(shè)置為1,,小于閾值的設(shè)置為0·在模型診斷過程中,,找出滿足某些條件的樣本 本文使用的示例數(shù)據(jù)如下:
where()np.where() 方法可以幫助我們找到array中滿足條件的元素的位置。現(xiàn)在我們可以使用np.where()找出所有預(yù)測概率大于0.5的的元素了: predict_prob = np.array([0.1,0.3,0.7,0.4,0.9]) np.where(predict_prob > 0.5) # output:array([2, 4]),)
一個簡單粗暴的方式是先用上面的方法分別找出array中概率大于或者小于0.5的索引,,然后再對這些位置的元素重新賦值,。 其實,np.where() 一個函數(shù)就能完成所有的操作,,只需要添加兩個參數(shù): ·第一個參數(shù)是滿足條件替換的值·第二個參數(shù)是不滿足條件替換的值
argmin(),、argmax()、argsort()np.argmin(),、np.argmax()方法會返回array中最小或最大的元素索引,,對示例數(shù)據(jù)運行結(jié)果如下: predict_prob = np.array([0.1,0.3,0.7,0.4,0.9])
np.argmax(predict_prob) # output: 4 np.argmin(predict_prob) # output: 0
現(xiàn)在該輪到np.sort()上場了
np.argsort()方法還支持多維數(shù)據(jù)的排序,,感興趣的可以自行查看Numpy官方文檔[1] intersect1d()intersect1d()要做的是,,它會找出兩個array中的交集,這個函數(shù)和前面的幾個函數(shù)不同,,返回的不是索引位置,,而是array中的實際值。 本函數(shù)我們使用新的示例數(shù)據(jù): arr1 = np.array([1,2,4,4,6]) arr2 = np.array([2,3,4,5,6]) 現(xiàn)在,,我們可以使用intersect1d()找出兩個數(shù)組共同的元素了:
引用鏈接
|
|