我在文件中有一个数据集,如下所示
A 1
B 2
C 3
A 4
B 5
C 6
我想只提取包含'A'
的行。如何使用numpy.genfromtxt
执行此操作? numpy中是否有其他功能可以帮助我做同样的事情?
答案 0 :(得分:7)
numpy.genfromtxt
接受生成器,因此您可以链接genfromtext
和ifilter
:
from itertools import ifilter
with open(fname, 'rb') as inp:
filtered_inp = ifilter(lambda x: x.startswith('A'), inp)
a = np.genfromtxt(filtered_inp)
答案 1 :(得分:2)
您可以使用花式索引读取整个文件并进行过滤:
a = np.genfromtxt('test.txt', dtype=str)
check = (a[:,0]=='A')
a = a[check]
答案 2 :(得分:1)
我也想要这个功能,但它不存在。所以现在你应该只是将整个文件作为矩阵加载,然后使用花式索引对其进行子集化,或删除你不想要的部分等。如果你真正想要的行数非常小而且总大小非常大,你甚至可以通过常规Python方式遍历行更好。