【发布时间】:2019-07-25 02:17:50
【问题描述】:
给定一个 numpy 数组,我想确定哪些行包含 NaN 值和对象。 例如,一行将包含一个浮点值和一个列表。
对于输入数组arr,我尝试执行arr[~np.isnan(arr).any(axis=1)],但随后收到错误消息
TypeError: ufunc 'isnan' not supported for the input types, and the inputs could
not be safely coerced to any supported types according to the casting rule ''safe''
【问题讨论】:
-
你可以试试
arr[~np.isnan(arr, casting = 'no').any(axis=1)]或arr[~np.isnan(arr, casting = 'unsafe').any(axis=1)] -
似乎您的数组中有不同的数据类型。
np.isnan适用于数字、浮点类型数组 - 所以也许您可以预先选择可以转换为浮点的数组部分,然后应用np.isnan? -
@SayanipDutta,我在
np.array([5., np.nan, 'asdf'])上尝试了你的建议 - 给了我与@Anonymous 经验相似/相同的TypeError。 -
给定一个示例数组。我假设 dtype 是
object。 -
比如数组是
np.array([[1, [2,3], np.nan], [3, [5,6,7], 8]]),我想去掉第一行。