我在numpy中有一个数组,在检查它的过程中,我意识到某个特定列中的某些值包含胡言乱语的字符串。在
例如,嫌疑犯列是第二列,它看起来像这样:
['Joe', '200.00']
['Fred', 'adfdfddfds']
['Zhu', '5000.00']
['text_ok_here', '10.10']
(请注意,dtype
是字符串)
我最终希望:
^{pr2}$我需要删除任何一个完整的行,它有一个不能转换成float的字符串,挂在我的特定列中。在
最初,我在想我可以遍历这个列,收集与有问题的条目匹配的索引,并使用它来对原始数组进行子集化。在
大致如下:
for entry in my particular column:
if <entry is a string, not a float>
<delete that whole row of the matrix>
但这行不通,因为一切都是一串线。在
我一直在处理转换类型的问题,但我没有直接的方法来测试这种胡言乱语。此外,即使我找到了正确的指数,我也不确定如何进行细分。在
我觉得这是很常见的事情——清理一个数组,但要完成这一点却有着惊人的困难。在
如有任何建议/理念等,将不胜感激。在
知道您的数据在}或者{}s之类的任何一个数字,
dtype
中是非常重要的,但是如果它是float
或{boolean
索引就足够了数据文件:
解决方案:
^{pr2}$编辑
如果
array
已经在string
中,这可能是最简单的:基本上,将数据读入}中,然后根据}的一部分。在
A
,作为string
s的array
;读入B
中float
和{B
得到{这里有一种方法。迭代检查条件行的数值索引。如果不满足条件,请将索引添加到包含要保留的行索引的列表
keep
。然后,可以使用列表keep
对数组进行切片,以获得一个只包含不满足消除条件的行的数组。要使用列表keep
分割数组a
,请执行a[keep]
。如果要覆盖原始数组,请执行a = a[keep]
。下面是一个示例,它在切片之前打印数组、要保留的索引列表以及切片后的数组。在相关问题 更多 >
编程相关推荐