2016-02-05 211 views
0

所以我有一個500k浮點數組。當我試圖:找不到爲什麼numpy.log10輸出nan?

np.log10(my_long_array) 

270k數字被替換爲南,他們並不小。例如:

In [1]: import numpy as np 

In [2]: t = -0.055488893531690543 

In [3]: np.log10(t) 
/home/aydar/anaconda3/bin/ipython:1: RuntimeWarning: invalid value encountered in log10 
    #!/home/aydar/anaconda3/bin/python3 
Out[3]: nan 

In [4]: type(t) 
Out[4]: float 

我錯過了什麼?

+0

請參閱文檔瞭解如何處理負數。 http://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.log10.html –

回答

5

負數的對數是不確定的,因此nan

docs to numpy.log10

返回:Y:ndarray

的對數到基座x的10,元素 - 明智的。 NaN返回,其中x爲負數

+1

啊,它非常明顯。我現在感到尷尬。 =))謝謝。 – YKY

3

負數總是給未定義的日誌,

的對數函數

Y = logb(X)

是指數函數的反函數

X = B^y

由於基數b是正數(b> 0),所以基數b上升到y的冪數對於任何實際的y都必須是正數(b^y> 0)。所以數字x必須是正數(x> 0)。

負數的實數b對數不確定。

logb(x)未定義x≤0