2012-02-16 142 views
16

是否有一個numpy函數可以給定numpy數組的最大值 - 最小值,即numpy.max(a) - numpy.min(a)?是否有一個numpy max min函數?

例如

numpy.xxx([4,3,2, 6] = 4 since max = 6, min = 2, 6 - 4 = 2) 

原因:性能提高由於最大值和最小值將導致兩倍的陣列的迭代(這是在我的情況下750萬倍或更多的數字)。

回答

28

確實有這樣的功能 - 它叫做「峯到峯」的numpy.ptp()

+7

+1 ... numpy應該將它們的函數名擴展爲30個字符。在這裏回答會更快... – eumiro 2012-02-16 14:14:42

+0

謝謝......我真的找不到它,但我很接近(看着peaktopeak和其他人)。 – 2012-02-16 14:15:00

+0

在內部,'ptp'函數分別計算最小值和最大值,所以此解決方案仍然遍歷數組兩次。有關詳細信息,請參見[ptp源代碼](https://github.com/numpy/numpy/blob/e7fe68ad3ce7f91cb152df49115f353ba9d75789/numpy/core/src/multiarray/calculation.c#L308)。 – jochen 2014-07-22 16:23:48