Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用numpy.genfromtxt从文件中读取数据时跳过行_Python_Arrays_File_Numpy_Io - Fatal编程技术网

Python 使用numpy.genfromtxt从文件中读取数据时跳过行

Python 使用numpy.genfromtxt从文件中读取数据时跳过行,python,arrays,file,numpy,io,Python,Arrays,File,Numpy,Io,我在一个文件中有一个数据集,如下所示 A 1 B 2 C 3 A 4 B 5 C 6 我只想提取包含'A'的行。如何使用numpy.genfromtxt实现这一点?numpy中是否有其他功能可以帮助我实现同样的功能?我也想要这个功能,但它不存在。因此,现在您可能只需将整个文件作为矩阵加载,然后使用奇特的索引将其子集,或者删除不需要的部分,等等。如果实际需要的行数非常少,而总大小非常大,您甚至可以使用常规的Python方式对这些行进行迭代。您可以读取整个文件,然后使用奇特的索引进行过滤: a =

我在一个文件中有一个数据集,如下所示

A 1
B 2
C 3
A 4
B 5
C 6

我只想提取包含
'A'
的行。如何使用
numpy.genfromtxt
实现这一点?numpy中是否有其他功能可以帮助我实现同样的功能?

我也想要这个功能,但它不存在。因此,现在您可能只需将整个文件作为矩阵加载,然后使用奇特的索引将其子集,或者删除不需要的部分,等等。如果实际需要的行数非常少,而总大小非常大,您甚至可以使用常规的Python方式对这些行进行迭代。

您可以读取整个文件,然后使用奇特的索引进行过滤:

a = np.genfromtxt('test.txt', dtype=str)

check = (a[:,0]=='A')
a = a[check]

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)

嗯,我明白了。我想要的行数相当大。我目前正在加载整个文件。那么,在有人为NumPy编写修补程序之前,您现在拥有的可能与现在一样好。谢谢@alko:)这应该比从文件读取所有数据快一点。我希望numpy能在将来直接实现