全文共1260字,預計學習時長
4分鐘今天,小芯將和大家討論每天用於數據分析的基本Numpy函數。
“我需要實現的東西不是那麼簡單,不可能有預建的函數存在”。
這一想法看起來沒毛病,然而,是錯的。純粹的Numpy就是如此強大,我敢打賭你並非瞭解它所提供的所有功能。
那麼,事不宜遲,讓我們開始吧。
Numpy是唯一需要導入的庫:
argmin(), argmax(), argsort()
好吧,有著難懂命名的這些函數究竟是什麼呢?
這確實沒有什麼難懂之處,但是如果你不想自己實現邏輯(提示:這是不應該的),這3個函數十分適合你。
argmin()函數將返回最小值的索引。若對之前使用的數組應用這一函數,它將返回最小值的索引位置:
你應該已經猜到,argmax()會做相反的事情——返回最大值的索引:
另一個好用的函數是argsort(),它將返回已排序數組的索引。有許多它可能會派上用場的情況:
allclose()
最後需要注意的是allclose()函數。如果兩個數組中的項在偏差範圍內相等,則返回True。它提供了一種檢查兩個數組是否相似的好方法,在某些情況下,手動實現這一功能可能會有些麻煩。
首先聲明兩個列表,並確保無論何處的各項差都不大於0.2:
如果以0.1的偏差調用allclose()函數,則返回False:
但是若將閾值更改為0.2,則應返回True:
intersect1d()
intersect1d()函數將返回兩個數組的交集——兩個數組中的共同項。與以前的函數不同,它不會返回索引位置,而是會返回實際值。
首先聲明兩個具有一些共同元素的數組:
現在可以使用此函數來查找共同的元素:
where()
where()函數會返回滿足特定條件的數組元素。可以用一個例子來探討它。
首先聲明一個表示某種等級的數組(該數組是任意的):
現在可以使用where()來查找所有大於3的等級:
注意它如何返回索引位置。
朋友們,where()的有趣之處不止於此,它還提供兩個附加參數:
•第一個參數用來替換滿足給定條件的值
•第二個參數用來替換不滿足條件的值
我曾經常認為自己的問題很獨特,不會有人想到寫一個函數來解決它。
儘管在某些情況下,事實可能確實如此,但是大多數時候,你會感覺自己像是個白痴,因為你會發現自己花費幾個小時手動實現的功能其實有相應的預建函數。
是不是傻眼了?
我們一起分享AI學習與發展的乾貨
閱讀更多 讀芯術 的文章