在Python中,假设我有连续变量x和y,其值在0和1之间是有界的(更容易).我的假设一直是,如果我想将这些变量转换为序数值,其中二进制数为0,0.01,0.02,...,0.98,0.99,1,可以简单地将原始值舍入到第二个数字.出于某种原因,当我这样做时,它留下了文物.
让我来说明问题(但是请注意,我的问题不是如何获得正确的情节,而是实际上如何进行正确的分组).首先,这些是重现问题所需的唯一模块:
import numpy as np
import matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)
现在,假设我们连续生成如下所示的数据(其他数据生成过程也会产生同样的问题):
# number of points drawn from Gaussian dists.:
n = 100000
x = np.random.normal(0, 2, n)
y = np.random.normal(4, 5, n)
# normalizing x and y to bound them between 0 and 1
# (it's way easier to illustrate the problem this way)
x = (x - min(x))/(max(x) - min(x))
y = (y - min(y))/(max(y) - min(y))
Run Code Online (Sandbox Code Playgroud)
然后,让我们仅仅通过应用一些舍入来转换x并y在上述间隔中进行序数.然后,我们将结果存入一个x由y …
直截了当地说,我的问题正如标题中所述:在使用C++编写的应用程序中,有没有办法检测浮点/双精度非正规数是否被编译器/系统"标准化"(例如,通过DAZ,FTZ,等等)?
如果需要上下文,我想要完成的是检测programaticaly最小的float/double值.然而,这些结果取决于非正规数是否被"标准化":如果是,则最小值由std的数值限制min()给出,否则由denorm_min()给出.
出于好奇,为什么按位运算符~是唯一一个在C++中没有赋值版本的非逻辑运算符,即~=?所有关系运算符和按位运算符都有赋值版本,但~=缺少.这有什么特别的原因吗?
对于C++中的所有运算符,请参阅:http://www.tutorialspoint.com/cplusplus/cpp_operators.htm