小编Hes*_*e34的帖子

Python NumPy log2 vs MATLAB

我是一个广泛使用MATLAB的Python新手.我正在转换一些log2在MATLAB 中使用的代码,我使用了NumPy log2函数,得到的结果与我预期的这么小的数字不同.我很惊讶,因为数字的精确度应该相同(即MATLAB double vs NumPy float64).

MATLAB代码

a = log2(64);

--> a=6
Run Code Online (Sandbox Code Playgroud)

基础Python代码

import math

a = math.log2(64)

--> a = 6.0
Run Code Online (Sandbox Code Playgroud)

NumPy代码

import numpy as np

a = np.log2(64)

--> a = 5.9999999999999991
Run Code Online (Sandbox Code Playgroud)

修改后的NumPy代码

import numpy as np

a = np.log(64) / np.log(2)

--> a = 6.0
Run Code Online (Sandbox Code Playgroud)

因此,本机NumPy log2函数会产生导致代码失败的结果,因为它检查数字是2的幂.预期结果正好是6,本机Python log2函数和修改后的NumPy代码都使用了对数的属性.我是否在使用NumPy log2功能做错了什么?我现在改变了代码以使用原生Python log2,但我只是想知道答案.

python matlab numpy

9
推荐指数
1
解决办法
1497
查看次数

标签 统计

matlab ×1

numpy ×1

python ×1