如何使用np.loadtxt使python只返回有效数据

如何使用np.loadtxt使python只返回有效数据,python,Python,我制作了一个加载数据文件的代码。我这样做是为了在数据不满足特定要求时出现错误消息。但是,我需要它也只返回有效的数据。我自己似乎找不到这样做的方法,所以我希望有人能帮助我。我的代码如下 import numpy as np def dataLoad(filename): initialData = np.loadtxt(filename) for i in range (len(initialData)): if initialData[i,0]>60 or initialData

我制作了一个加载数据文件的代码。我这样做是为了在数据不满足特定要求时出现错误消息。但是,我需要它也只返回有效的数据。我自己似乎找不到这样做的方法,所以我希望有人能帮助我。我的代码如下

import numpy as np
def dataLoad(filename):
initialData = np.loadtxt(filename)

for i in range (len(initialData)):
    if initialData[i,0]>60 or initialData[i,0]<10:
        print("Temperature must be between 10 and 60. Error in column 1 row {}.".format(initialData.shape[0]))
    if initialData[i,1]<0:
        print("Bacteria Growth Rate must be higher than, or equal to 0. Error in column 2 row row {}.".format(initialData.shape[0]))
    if initialData[i,2] not in [1, 2, 3, 4]:
        print("Bacteria Category must be one of the numbers: 1, 2, 3 and 4. Error in column 3 row {}.".format(initialData.shape[0]))
    else:
        pass
data = initialData.reshape(-1,3)
return data
将numpy导入为np
def数据加载(文件名):
initialData=np.loadtxt(文件名)
对于范围内的i(len(initialData)):

如果initialData[i,0]>60或initialData[i,0]这个问题的一个解决方案是通过 将它们存储在列表中,然后在返回之前使用从
initialData
中删除它们。该函数将数组、要删除的索引列表以及数据点应沿其删除的轴作为输入,在本例中,删除行时该轴将为0

您的代码将如下所示:

import numpy as np
def dataLoad():
    del_indices= []
    initialData = np.loadtxt(filename)

    for i in range (len(initialData)):
        if initialData[i,0]>60 or initialData[i,0]<10:
            print("Temperature must be between 10 and 60. Error in column 1 row {}.".format(initialData.shape[0]))
            del_indices.append(i)
        if initialData[i,1]<0:
            print("Bacteria Growth Rate must be higher than, or equal to 0. Error in column 2 row row {}.".format(initialData.shape[0]))
            del_indices.append(i)
        if initialData[i,2] not in [1, 2, 3, 4]:
            print("Bacteria Category must be one of the numbers: 1, 2, 3 and 4. Error in column 3 row {}.".format(initialData.shape[0]))
            del_indices.append(i)
    initialData = np.delete(initialData,del_indices, axis=0)
    data = initialData.reshape(-1,3)
    return data
将numpy导入为np
def dataLoad():
del_指数=[]
initialData=np.loadtxt(文件名)
对于范围内的i(len(initialData)):
如果initialData[i,0]>60或initialData[i,0]