Hướng dẫn dùng log1p trong PHP

❮ PHP Math Reference

Example

Return log(1+number) for different numbers:

echo(log1p(2.7183) . "
");
echo(log1p(2) . "
");
echo(log1p(1) . "
");
echo(log1p(0));
?>

Try it Yourself »


Definition and Usage

The log1p() function returns log(1+number), computed in a way that is accurate even when the value of number is close to zero.


Syntax

Parameter Values

ParameterDescription
number Required. Specifies the number to process

Technical Details

Return Value:log(1+number)
Return Type:Float
PHP Version:4.1+
PHP Changelog:PHP 5.3: The log1p() function is now available on all platforms

❮ PHP Math Reference


Mục đích của numpy.log1p () là gì?

Xin chào, tôi mới làm quen với kaggle và đang làm việc trên tập dữ liệu Dự đoán nhà . Tôi vừa xem qua một trong những Kernel này và không thể hiểu nó numpy.log1p()làm gì trong đường dẫn thứ ba của mã này

Tôi đã googled nó và tài liệu của numpy cho biết nó

Lợi nhuận :

  • Một mảng có giá trị lôgarit tự nhiên là x + 1;
  • trong đó x thuộc về tất cả các phần tử của mảng đầu vào.

Nhưng mục đích của việc tìm nhật ký có thêm một (+1) trong khi tìm độ lệch của mảng ban đầu và mảng đã biến đổi của các đối tượng địa lý giống nhau là gì? Nó làm gì ?

Ai đó có thể hướng dẫn tôi không?

  • python
  • numpy

25 hữu ích 4 bình luận 26k xem chia sẻ

answer

53

Tài liệu NumPy đưa ra gợi ý :

Đối với đầu vào có giá trị thực, log1pcũng chính xác đối với độ chính xác xnhỏ đến 1 + x == 1mức độ chính xác của dấu chấm động.

Vì vậy, ví dụ, chúng ta hãy thêm một số nhỏ khác 0 và 1.0. Làm tròn lỗi làm cho nó a 1.0.

>>> 1e-100 == 0.0
False
>>> 1e-100 + 1.0 == 1.0
True

Nếu chúng tôi cố gắng lấy logtổng không chính xác đó, chúng tôi sẽ nhận được kết quả không chính xác (so sánh với WolframAlpha ):

>>> np.log(1e-100 + 1)
0.0

Nhưng nếu chúng ta sử dụng log1p(), chúng ta sẽ nhận được kết quả chính xác

>>> np.log1p(1e-100)
1e-100

Nguyên tắc tương tự áp dụng cho exp1m()logaddexp(): Càng nhỏ càng chính xác x.

53 hữu ích 2 bình luận chia sẻ

answer

9

Nếu x nằm trong khoảng 0 ... + Inf thì nó sẽ không bao giờ gây ra lỗi (như chúng ta biết log (0) sẽ gây ra lỗi).

Không phải lúc nào cũng là lựa chọn tốt nhất, vì như bạn thấy, bạn sẽ mất một đường cong lớn trước x = 0, đó là một trong những điều tốt nhất về hàm log

9 hữu ích 1 bình luận chia sẻ

answer

0

Khi giá trị đầu vào của bạn quá nhỏ, bằng cách sử dụng np.log1phoặc np.expm1để tính toán, bạn sẽ nhận được kết quả đáng tin cậy hơn np.loghoặc np.exptheo cách diễn giải từ liên kết này .

0 hữu ích 0 bình luận chia sẻ

Đăng nhập để trả lời câu hỏi

Có thể bạn quan tâm

Hàm log1p() trong Python

Nội Dung

  • 1. Cú pháp sử dụng hàm math.log1p() trong Python
  • 2. Ví dụ hàm math.log1p() trong Python

1. Cú pháp sử dụng hàm math.log1p() trong Python

Hàm math.log1p(x) trong Python được sử dụng để trả về lôgarit cơ số (hay còn gọi là loogarit tự nhiên) của x + 1. Hàm này sẽ được tính và trả về kết quả theo cách chính xác ngay cả khi giá trị của số gần bằng 0. Cú pháp hàm math.log1p(x) như sau:

math.log1p(x)

Tham số:

  • x là giá trị chỉ định để tính logarit cơ số e của x + 1
Giá trị trả về: Một giá trị kiểu float. Là kết quả logarit cơ số e của một số x + 1
Phiên bản Python: 2.6

Lưu ý: 

  • Nếu giá trị tham số x được truyền vào hàm bằng 0 (x = 0) hoặc giá trị tham số x truyền vào hàm là một số nguyên âm thì hàm sẽ thực thi gây ra lỗi ValueError!
  • Nếu giá trị tham số được truyền vào hàm không phải là kiểu số thì hàm sẽ không thể thực hiện tính toán và gây ra lỗi TypeError!

2. Ví dụ hàm math.log1p() trong Python

Ví dụ dưới đây, sử dụng hàm math.log1p(x) để tính logarit cơ số e của các số x + 1 ngẫu nhiên ở bên dưới và trả về kết quả như sau:

import math

# Tinh logarit co so e cua x + 1 (math.log1p(x))
print(math.log1p(2.7183))
print(math.log1p(2))
print(math.log1p(1))

Kết quả:

1.3132665745863341
1.0986122886681096
0.6931471805599453

Ví dụ tiếp theo, truyền các giá trị x = 0 hoặc giá trị tham số x là số nguyên âm vào hàm trong hàm math.log1p() thì khi đó hàm sẽ gây lỗi ValueError như sau:

import math

# Tinh logarit co so e cua x + 1 (math.log1p(x))
print(math.log1p(-2.7183))
print(math.log1p(-2))
print(math.log1p(1))

Kết quả:

Traceback (most recent call last):
  File "./prog.py", line 4, in 
ValueError: math domain error

Ví dụ cuối cùng, truyền vào hàm các giá trị x là không thuộc kiểu số, khi đó hàm sẽ không thể thực hiện tính toán và gây ra lỗi TypeError như sau:

import math

# Tinh logarit co so e cua x + 1 (math.log1p(x))
print(math.log1p("-2.7183"))
print(math.log1p("a"))
print(math.log1p(1))

Kết quả:

Traceback (most recent call last):
  File "./prog.py", line 4, in 
TypeError: must be real number, not str