log¶
- log(x:array,/)→array¶
Calculates an implementation-dependent approximation to the natural (base
e) logarithm for each elementx_iof the input arrayx.Note
The natural logarithm of a complex number\(z\) with polar coordinates\((r,\theta)\) equals\(\ln r + (\theta + 2n\pi)j\) with principal value\(\ln r + \theta j\).
Note
For complex floating-point operands,
log(conj(x))must equalconj(log(x)).Note
By convention, the branch cut of the natural logarithm is the negative real axis\((-\infty, 0)\).
The natural logarithm is a continuous function from above the branch cut, taking into account the sign of the imaginary component.
Accordingly, for complex arguments, the function returns the natural logarithm in the range of a strip in the interval\([-\pi j, +\pi j]\) along the imaginary axis and mathematically unbounded along the real axis.
Note: branch cuts follow C99 and have provisional status (seeBranch Cuts).
- Parameters:
x (array) – input array. Should have a floating-point data type.
- Returns:
out (array) – an array containing the evaluated natural logarithm for each element in
x. The returned array must have a floating-point data type determined byType Promotion Rules.
Notes
Special cases
For real-valued floating-point operands,
If
x_iisNaN, the result isNaN.If
x_iis less than0, the result isNaN.If
x_iis either+0or-0, the result is-infinity.If
x_iis1, the result is+0.If
x_iis+infinity, the result is+infinity.
For complex floating-point operands, let
a=real(x_i),b=imag(x_i), andIf
ais-0andbis+0, the result is-infinity+πj.If
ais+0andbis+0, the result is-infinity+0j.If
ais a finite number andbis+infinity, the result is+infinity+πj/2.If
ais a finite number andbisNaN, the result isNaN+NaNj.If
ais-infinityandbis a positive (i.e., greater than0) finite number, the result is+infinity+πj.If
ais+infinityandbis a positive (i.e., greater than0) finite number, the result is+infinity+0j.If
ais-infinityandbis+infinity, the result is+infinity+3πj/4.If
ais+infinityandbis+infinity, the result is+infinity+πj/4.If
ais either+infinityor-infinityandbisNaN, the result is+infinity+NaNj.If
aisNaNandbis a finite number, the result isNaN+NaNj.If
aisNaNandbis+infinity, the result is+infinity+NaNj.If
aisNaNandbisNaN, the result isNaN+NaNj.
Changed in version 2022.12:Added complex data type support.