Привет, все, чего я не хочу, должно быть действительно простым для кого-то здесь .. Я хочу удалить строку из массива с пустым фрагментом в цикле, подобном:
for i in range(len(self.Finalweight)):
if self.Finalweight[i] >= self.cutoffOutliers:
"remove line[i from self.wData"
Я пытаюсь удалить выбросы из набора данных. Мой полный код или метод выглядит так:
def calculate_Outliers(self):
def calcWeight(Value):
pFinal = abs(Value - self.pMed)/ self.pDev_abs_Med
gradFinal = abs(gradient(Value) - self.gradMed) / self.gradDev_abs_Med
return pFinal * gradFinal
self.pMed = median(self.wData[:,self.yColum-1])
self.pDev_abs_Med = median(abs(self.wData[:,self.yColum-1] - self.pMed))
self.gradMed = median(gradient(self.wData[:,self.yColum-1]))
self.gradDev_abs_Med = median(abs(gradient(self.wData[:,self.yColum-1]) - self.gradMed))
self.workingData= self.wData[calcWeight(self.wData)<self.cutoffOutliers]
self.xData = self.workingData[:,self.xColum-1]
self.yData = self.workingData[:,self.yColum-1]
Я получаю следующую ошибку:
ile "bin / dmtools", строка 201, в plot_gride
self.calculate_Outliers ()
Файл "bin / dmtools", строка 188, в execute_Outliers
self.workingData = self.wData [calcWeight (self.wData)> self.cutoffOutliers]
ValueError: слишком много индексов для массива