我有一个二维 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]])
是否存在更有效/“pythonic”的方式来进行这样的操作?
有一个 numpy 函数,试试numpy.log
>>> arr = np.arange(1,10).reshape((3,3))
>>> np.log(arr)
array([[ 0. , 0.69314718, 1.09861229],
[ 1.38629436, 1.60943791, 1.79175947],
[ 1.94591015, 2.07944154, 2.19722458]])
或者像在您的实现中一样,您可以使用numpyp.log10来查找基数为 10 的日志。
>>> np.log10(arr)
array([[ 0. , 0.30103 , 0.47712125],
[ 0.60205999, 0.69897 , 0.77815125],
[ 0.84509804, 0.90308999, 0.95424251]])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句