簡體   English   中英

使用numpy.genfromtxt從文件讀取數據時跳過行

[英]Skip rows when reading data from file using numpy.genfromtxt

我在文件中有一個數據集,如下所示

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

我想只提取包含'A'行。 我如何用numpy.genfromtxt做到這numpy.genfromtxt numpy中是否有其他功能可以幫助我做同樣的事情?

numpy.genfromtxt接受生成器,因此您可以鏈接genfromtextifilter

from itertools import ifilter
with open(fname, 'rb') as inp:
     filtered_inp = ifilter(lambda x: x.startswith('A'), inp)
     a = np.genfromtxt(filtered_inp)

您可以使用花式索引讀取整個文件並進行過濾:

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

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

我也想要這個功能,但它不存在。 所以現在你應該只是將整個文件作為矩陣加載,然后使用花式索引對其進行子集化,或刪除你不想要的部分等。如果你真正想要的行數非常小而且總大小非常大,你甚至可以通過常規Python方式迭代這些行更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM