NumPy Logs

لگاریتم

در NumPy توابعی جهت لگاریتم گیری در پایه‌های e, 2 و 10 وجود دارد.

در اینجا به نحوه لگاریتم گیری در هر پایه‌ای با استفاده از ساختن یک ufunc دلخواه نیز می‌پردازیم.

تمامی توابع لگاریتمی در صورتی که نتوانند لگاریتم داده شده را محاسبه کنند برای آن عنصر از یکی از دو عبارت inf- یا inf را برمی‌گردانند.

لگاریتم در پایه 2

با استفاده از تابع log2() می‌توانید در پایه 2 لگاریتم گیری را انجام دهید.


import numpy as np

arr = np.arange(1, 10)

print(np.log2(arr))

خروجی:

در کد بالا تابع arange(1, 10) یک آرایه از اعداد صحیح بین یک (شامل می‌شود) و 10 (شامل نمی‌شود) را برمی‌گرداند.

لگاریتم در پایه 10

با استفاده از تابع log10() می‌توانید در پایه 10 لگاریتم گیری را انجام دهید.


import numpy as np

arr = np.arange(1, 10)

print(np.log10(arr))

خروجی:

لگاریتم طبیعی یا لگاریتم در پایه e

با استفاده از تابع log() می‌توانید در پایه e لگاریتم گیری را انجام دهید.


import numpy as np

arr = np.arange(1, 10)

print(np.log(arr))

خروجی:

لگاریتم گیری در پایه دلخواه

در NumPy تابعی برای لگاریتم گیری در پایه دلخواه وجود ندارد. بنابراین از تابع frompyfunc() همراه با تابع داخلی math.log() پایتون با دو پارامتر ورودی و یک پارامتر خروجی استفاده می‌کنیم.


from math import log
import numpy as np

nplog = np.frompyfunc(log, 2, 1)

print(nplog(100, 15))

خروجی: