如何使用numpy在Python中删除包含特定字符串的行?

3

现在我有一个包含2亿行数据的巨大ndarray,如下所示。

[['5040' '5' 'load_video' '2015-03-30 12:31:27.727452'
['5040' '44' 'load_video' '2015-03-30 12:33:26.764407']
['5040' '34' 'load_video' '2015-03-30 12:31:26.102226']
 ..., 
['3076' '1' 'play_video' '2015-05-31 05:52:33.395859']
['3076' '1' 'seek_video' '2015-05-31 05:52:36.941808']
['1512' '8' 'load_video' '2015-05-31 07:19:56.715000']]]

我希望做的是删除所有包含"load_video"字符串的行。有什么解决方案吗?
PS:接下来我想按第一列对行进行排序,但由于它是字符串类型,我发现无法使用.astype仅将第一行更改为int,我该怎么办?
这些可能是一些非常简单的问题,但由于我是新手,你的答案会对我有很大帮助。谢谢!

由于数据集非常庞大,我认为使用np.apply_along_axis()函数会更好。 - Vinnton
另外:如果你正在处理非数值数据,使用pandas比纯numpy更容易。 - DSM
@Vinnton:没错。对于具有不同列类型的表格数据,使用框架会使生活变得更加轻松。 - DSM
@sharatpc 是的,现在我正在尝试它!使用pd.DataFrame更方便。 - Vinnton
@DSM 是的,我也找到了。非常感谢! - Vinnton
显示剩余2条评论
1个回答

2
这是用Python删除所有包含“load_video”的条目。
new_list = [x for x in old_list if 'load_video' not in x]

但不幸的是,我收到了一个错误AttributeError:'numpy.ndarray'对象没有'split'属性 - Vinnton
1
我修改了你的解决方案,将TrainData = [x for x in TrainData if x[2] != 'load_video']加入其中,现在它能正常工作了!非常感谢! - Vinnton
是的,你需要使用自己的列表名称而不是old_list,很高兴它能够工作!! - Davis Allen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接