【发布时间】:2022-01-21 16:43:38
【问题描述】:
我只想保留 numpy 字符串数组中的数字,这些数字不一定有效。我的代码如下所示:
age = train['age'].to_numpy() # 200k values
set(age)
# {'1', '2', '3', '7-11', np.nan...}
age = np.array(['1', '2', '3', '7-11', np.nan])
期望的输出:
np.array([1, 2, 3])。理想情况下,'7-11' 应该是 7,但是,这并不简单,而且是可以容忍的损失。
np.isfinite(x) 给出“输入类型不支持 ufunc 'isfinite',并且根据强制转换规则 ''safe'' 无法安全地将输入强制转换为任何支持的类型” /p>
x = [num for num in age if isinstance(num, (int, float))] 返回[]
【问题讨论】:
-
这实质上是对以下问题stackoverflow.com/q/11620914/5728614的后续处理
-
请提供所需的输出,我假设它是一个只有 [1, 2] 的数组?应该返回任何整数和浮点数,但是作为数字的字符串呢,例如'1'。是否应该将其作为整数类型包含在内?关于边缘情况等的更多上下文会有所帮助
-
@frederick-douglas-pearce 我进行了大量编辑并更正了数据类型。我尝试了您链接的答案的解决方案之一。我会试试
isnumeric