【发布时间】:2019-07-17 23:17:05
【问题描述】:
我正在将一些代码从 Matlab 转换为 Python。
在matlab中有一个函数mod,它给出了模运算。
例如以下示例显示了 matlab mod 和等效的 numpy remainder 操作之间的不同结果:
Matlab:
>> mod(6, 0.05)
ans =
0
麻木:
np.remainder(6, 0.05)
0.04999999999999967
np.mod(6, 0.05)
0.04999999999999967
Python 取模运算符给出与 numpy 相同的结果。
6%0.05
0.04999999999999967
python 中有什么东西可以提供与 Matlab 中相同的 mod 操作吗?最好可以在numpy 2d/3d 数组上操作。
numpy documentation 表示numpy.mod 等价于matlab mod。
【问题讨论】:
-
从documentation,计算与
floor_divide函数互补的余数。np.floor_divide(6, 0.05)=119.0。119.0*.05=5.95的值。因此,你得到的余数是0.04999999999999967。 -
@Aditya 但不应该
6//0.05 == 120。 -
6//0.05 == 119.0。它将数字四舍五入到较低的值。
标签: python matlab numpy floating-point