Python:获取2D数组中所有元素的日志

Python:获取2D数组中所有元素的日志,python,arrays,numpy,Python,Arrays,Numpy,我有一个2D numpy阵列: >>> arr = np.arange(1,10).reshape((3,3)) array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) 我希望取数组中所有元素的对数。 下面的代码可以工作,但有点笨拙 >>> from math import log10 >>> logArr = np.empty((3,3)) >>> for i in

我有一个2D numpy阵列:

>>> arr = np.arange(1,10).reshape((3,3))
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
我希望取数组中所有元素的对数。 下面的代码可以工作,但有点笨拙

>>> from math import log10 
>>> logArr = np.empty((3,3))
>>> for i in range(3):
...     for j in range(3):
...             logArr[i][j] = log10(arr[i][j])
... 
array([[ 0.        ,  0.30103   ,  0.47712125],
       [ 0.60205999,  0.69897   ,  0.77815125],
       [ 0.84509804,  0.90308999,  0.95424251]])

有没有更有效的方法来做这样的操作?

有一个numpy函数,试试看

或者像在您的实现中一样,您可以使用在base 10中查找日志

>>> np.log10(arr)
array([[ 0.        ,  0.30103   ,  0.47712125],
       [ 0.60205999,  0.69897   ,  0.77815125],
       [ 0.84509804,  0.90308999,  0.95424251]])

有一个numpy函数,试试看

或者像在您的实现中一样,您可以使用在base 10中查找日志

>>> np.log10(arr)
array([[ 0.        ,  0.30103   ,  0.47712125],
       [ 0.60205999,  0.69897   ,  0.77815125],
       [ 0.84509804,  0.90308999,  0.95424251]])