如何防止归一化公式产生 NaN 值?

How to prevent Normalization Formula to produce NaN values?

尝试使用以下公式规范化我的数据时:

normalized_df=(df-df.mean())/df.std()

一些值变为 NaN。我认为它可以成为 NaN 的唯一原因是标准偏差是否等于零(除以 0)。这不太可能,因为这意味着所有值都必须具有相同的值。

为什么会这样呢?如何避免?

我发现了一个类似的问题 表明它可能是一个错误!

无需任何额外输入,std 将给出各列的标准差。因此,首先要检查的是您获得 NaN 的列的外观。

原因可能不止一个。正如您所说,要么是因为它们的 std 是 0。要么是因为任何列条目都是 NaN。

因此,要查找错误,请检查特定专栏中的内容。为自己显式计算均值和标准差,看看发生了什么。并检查列中的任何条目是否已经是 NaN。我无法想象这个 numpy bug 已经 4 年多了还没有被修复。