python - `numpy.log1p( )` 的用途?

标签 python numpy

我刚刚遇到其中一个Kernels无法理解 numpy.log1p() 在此代码的第三个管道(Kaggle 中的房屋预测数据集)中做了什么。

Numpy 文档说

返回:
- 自然对数值为x + 1的数组
- 其中 x 属于输入数组的所有元素。

在查找具有相同特征的原始数组和转换数组的偏度时,查找添加一个日志的目的是什么?它实际上有什么作用?

最佳答案

NumPy docs give a hint :

For real-valued input, log1p is accurate also for x so small that 1 + x == 1 in floating-point accuracy.

例如,让我们添加一个微小的非零数字和 1.0。舍入误差使其成为 1.0

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

如果我们尝试获取那个不正确总和的 log,我们会得到一个不正确的结果(与 WolframAlpha 比较):

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

但是如果我们使用log1p(),我们会得到正确的结果

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

同样的原则适用于 exp1m()logaddexp() : 对于小的 x 更准确。

关于python - `numpy.log1p( )` 的用途?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49538185/

相关文章:

python - 如何将 python csv.DictReader 与二进制文件一起使用? (对于一个babel自定义提取方法)

python - 使用 lxml 和 xpath 抓取网站后出现数据类型问题

python - 缩短 For 循环

python - 如何轻松(高效)地从数组中删除单个元素?

python - 在 scipy.sparse 中创建一个大的稀疏矩阵

python - numpy.polyfit 不处理 NaN 值

python - 使用 beautifulsoup 获取文本。

python - numpy 检查所有元素是否为 False

python - 沿轴连接字符串

python - 在自定义损失函数中迭代张量