如何在张量流中删除空值?

时间:2019-05-13 02:53:12

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

enter image description here 这是我第一次问StackOverflow,所以如果我说奇怪的话,请让我平稳地知道。

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

我尝试在熊猫中使用isnull函数,但是没有用。

我认为之所以没有计算准确度和损失值的原因是,设置为X的值属于空值。

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

如果您遇到类似情况或解决了此问题,请让我知道如何解决此问题。谢谢!

1 个答案:

答案 0 :(得分:0)

您说过,您不知道如何删除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.]])

或者将numpy数组替换为Nan(例如0)

x[np.isnan(x)] = 0

输出

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

在pandas数据框中,您可以删除带有Nan元素的特定列

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