【问题标题】:how to delete null value in tensorflow?如何删除张量流中的空值?
【发布时间】:2019-05-13 02:53:11
【问题描述】:

这是我第一次问 StackOverflow,所以如果我说奇怪的事情,请让我顺利知道。

我想预测此数据集中的准确性。 但我不知道如何使用 pandas 或 numpy 接受或删除 nan 或 null 值,以及如何在此模型中获得正确的准确性和损失。

我尝试在 pandas 中使用 isnull 函数,但没有成功。

我认为accuracy和loss的值不计算的原因是设置为X的值属于null值。

所以我想知道如何排除 nan 或 null 值。

如果您有类似案例或解决此问题,请告诉我如何解决此问题。谢谢!

【问题讨论】:

标签: tensorflow machine-learning deep-learning tensorflow-datasets


【解决方案1】:

您说您不知道如何删除 pandas 或 numpy 中的 nan 值,但有时我们不删除它们,而是替换它们。例如,您可以为某个特征的非值设置零,或者您可以计算该特征的平均值并使用它。

要删除具有 nan 值的行,您可以这样做

x = np.array([[1,2,3,4],
              [2,3,np.nan,5],
              [np.nan,5,2,3]])
x = x[~np.isnan(x).any(axis=1)]

输出:

array([[1., 2., 3., 4.]])

或者将 Nan 替换为 0 之类的其他东西,用于 numpy 数组:

x[np.isnan(x)] = 0

输出

x:
array([[1., 2., 3., 4.],
       [2., 3., 0., 5.],
       [0., 5., 2., 3.]])

在 pandas 数据框中,您可以使用 Nan elemnt 删除特定列

x = np.array([[np.nan,2,3,4],
          [2,3,np.nan,5],
          [3,5,2,3]])
xpd = pd.DataFrame(x, columns=["A","B","C","D"])
xpd = xpd[pd.notnull(xpd['A'])]

输出

xpd
     A    B    C    D
1  2.0  3.0  NaN  5.0
2  3.0  5.0  2.0  3.0

或删除带有 Nan 元素的行

xpd:
     A    B    C    D
2  3.0  5.0  2.0  3.0

你也可以用 padas 数据框中的其他东西替换 nan 值

xpd = xpd.replace([np.nan], 0)

输出

xpd:
     A    B    C    D
0  0.0  2.0  3.0  4.0
1  2.0  3.0  0.0  5.0
2  3.0  5.0  2.0  3.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-25
    • 2017-07-11
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 2017-07-31
    • 2017-10-05
    相关资源
    最近更新 更多