Numpy 功能十分強(qiáng)大,很多我們想要的復(fù)雜操作都有實現(xiàn)。今天分享幾個數(shù)據(jù)分析中經(jīng)常需要用到的重要函數(shù)。掌握這些函數(shù)可以幫助我們保持代碼整潔并且避免重復(fù)造輪子。
準(zhǔn)備工作
導(dǎo)入numpy
import numpy as np
示例數(shù)據(jù)
本文以二分類任務(wù)為例,通常我們的model會輸出預(yù)測的概率,得到概率后需要進(jìn)行后續(xù)的處理,比如:
?根據(jù)閾值,將概率大于某個閾值的label設(shè)置為1,小于閾值的設(shè)置為0?在模型診斷過程中,找出滿足某些條件的樣本
本文使用的示例數(shù)據(jù)如下:
predict_prob = np.array([0.1,0.3,0.7,0.4,0.9])
where()
np.where() 方法可以幫助我們找到array中滿足條件的元素的位置?,F(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]),)
如果我們想將所有概率大于0.5的元素替換為1,否則替換為0,該怎么做呢?
一個簡單粗暴的方式是先用上面的方法分別找出array中概率大于或者小于0.5的索引,然后再對這些位置的元素重新賦值。
其實,np.where() 一個函數(shù)就能完成所有的操作,只需要添加兩個參數(shù):
?第一個參數(shù)是滿足條件替換的值?第二個參數(shù)是不滿足條件替換的值
predict_prob = np.array([0.1,0.3,0.7,0.4,0.9])np.where(predict_prob > 0.5, 1, 0)# output: array([0, 0, 1, 0, 1])
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: 4np.argmin(predict_prob)# output: 0
我們成功找到了array中最大最小的元素索引,那怎樣找到前n個最大的或最小的值呢?
現(xiàn)在該輪到np.sort()上場了
predict_prob = np.array([0.1,0.3,0.7,0.4,0.9])np.argsort(predict_prob)# output: array([0, 1, 3, 2, 4])
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ù)組共同的元素了:
np.intersect1d(arr1, arr2)# output: array([2, 4, 6])
-
閾值
+關(guān)注
關(guān)注
0文章
122瀏覽量
18457 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4284瀏覽量
62325 -
數(shù)據(jù)分析
+關(guān)注
關(guān)注
2文章
1412瀏覽量
33987
原文標(biāo)題:Numpy 中不得不知的4個重要函數(shù)
文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論