2017-01-13 9 views
0

私は現在、numpy.ndarrayの各要素のログを取ることに苦労しています。numpy.ndarrayの各要素のログを取得しますか?

文書によると、1だけ.log() ..

が、私はそれを動作させることができないことができるはずですか? numpy.ndarrayの方法ではありません、あなたがそのようにコールする必要がありますので、それは、numpyモジュール内の関数です

>>> import numpy 
>>> x = numpy.random.rand(3,3) 
>>> x 
array([[ 0.42631996, 0.13211157, 0.09500156], 
     [ 0.5699495 , 0.39852007, 0.55909279], 
     [ 0.12059745, 0.40645911, 0.68107768]]) 
>>> x.log 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'numpy.ndarray' object has no attribute 'log' 
>>> 
+2

np.log(x)は、おそらく – NaN

答えて

6

numpy.log()

In [1]: import numpy 

In [2]: x = numpy.random.rand(3,3) 

In [3]: x 
Out[3]: 
array([[ 0.05047638, 0.40156621, 0.29631731], 
     [ 0.21764918, 0.49813348, 0.48520004], 
     [ 0.59433129, 0.53859086, 0.66388153]]) 

In [4]: numpy.log(x) 
Out[4]: 
array([[-2.98624972, -0.91238286, -1.21632442], 
     [-1.52487076, -0.69688721, -0.72319401], 
     [-0.52031839, -0.61879907, -0.40965157]]) 
+0

これは、それを行う最も効率的な方法です。 numpy ufunc(https://docs.scipy.org/doc/numpy/reference/ufuncs.html)を使用します。 – NinjaGaiden

関連する問題