【发布时间】:2016-05-11 02:07:12
【问题描述】:
我有这样一个 numpy 矩阵:
[[182 93 107 ..., nan nan -1]
[182 93 107 ..., nan nan -1]
[182 93 110 ..., nan nan -1]
...,
[188 95 112 ..., nan nan -1]
[188 97 115 ..., nan nan -1]
[188 95 112 ..., nan nan -1]]
我想将 nan 值更改为不同于零的值。出于这个原因,我使用了这种技术:
x_train[np.isnan(x_train)] = -10
但是我收到了这个错误:
TypeError: ufunc 'isnan' 不支持输入类型,并且 输入无法安全地强制转换为任何支持的类型 强制转换规则“安全”。
我该如何解决这个问题?
谢谢,
【问题讨论】:
-
什么是
x_train.dtype? -
x_train.dtype = object
-
那么这就是你的问题——NumPy 不知道在你的对象数组中调用
nan,就像它们都是浮点数一样。我们可能需要更多地了解您如何加载数据以及数据的外观。 -
这不是问题@xnx,我可以将dtype更改为不同的类型,不用担心。如果我的 dtype 是字符串,你能告诉我解决方案吗?
-
如果 dtype 是数字类型,例如 float64,您的代码应该可以正常工作。