2017-01-13 9 views
0

私が最初にやっているプロジェクトでは、無効なデータが削除されるようにデータをフィルタリングする必要があります。これは、ロードするデータの行の1つに文字/単語が含まれている場合、削除する必要があることを意味します。 私の次のコードはそうするために十分ですか?あなたは、行は、あなたが使用できる文字や単語が含まれているかどうかを確認するために行全体または文字ではなく番号か何か文字列や単語を含む行を削除する方法

あるだけの文字を削除したい場合は、私は理解していない

import numpy as np 
def dataLoad(filename): 
#The data is loaded and the variables are defined: 
    rawData=np.loadtxt('test.txt') 
    rawTemperature, rawGrowthrate, rawBacteria=np.loadtxt('test.txt',unpack=True) 
    print("You have choosen to work with the file {:s}".format(filename)) 
    # Removeing unvalid data: 
    # Empty vector to save the invalid data in: 
    InvalidData=[] 
    # Vector with ones: 
    Erase=np.ones(len(rawData)) 

    # The loop looks trough every datapoint in the matrix: 
    for i in range(len(rawData)): 
     # The rows in the Data that contains invalid data is inserted in Invalid Data 
     # And the ones in I'th place is switched to a zeroes. 
     if rawTemperature[i]<10 or rawTemperature[i]>60 or rawTemperature[i]==(""): 
      InvalidData.insert(i,'In line %d invalid Temperature' % (i+1)) 
      Erase[i]=0 
     if rawGrowthrate[i]<0 or rawGrowthrate[i]==(""): 
      InvalidData.insert(i,'In line %d invalid Growth rate' % (i+1)) 
      Erase[i]=0 
     if rawBacteria[i]<0 or rawBacteria[i]>4 or rawBacteria[i]==(""): 
      InvalidData.insert(i,'In line %d invalid Bacteria' % (i+1))    
      Erase[i]=0 
+3

テストしましたか?それらのテストに合格しますか? – jonrsharpe

+0

test.txtには何が含まれていますか? – Inconnu

答えて

0

正規表現[a-zA-Z]Regex to match only letters

https://docs.python.org/2/library/re.html

あなたは単にあなたが使用できる文字re.subとsubstituを削除したい場合は、 TEが

あなたがnumpyの配列に行全体を削除したい場合はNumpy array Regex subを参照してくださいnumpyの例えば空きスペース「」

import re 
s = "ExampleString123" 
replaced = re.sub('[a-zA-Z]', '', s) 
print replaced 

を持つキャラクターは、あなたは正規表現[a-zA-Z]を使用して、それを選択することができます(Selecting elements in numpy array using regular expressions)、次にを削除してください。deleting rows in numpy array

関連する問題