Array mit Zahl vergleichen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Marleb
User
Beiträge: 22
Registriert: Montag 5. August 2013, 11:00

Ich möchte Werte, die mehr als 50% von meinem Mittelwert abweichen duch den Wert der Zelle vorher ersetzen. Ich bekomme dann den Fehler: "The truth value of an array with more than one element is ambiogus. Use a.any() or a.all()."
Kann jemand helfen?

Code: Alles auswählen

import csv
import pandas as pd
import numpy as np
from scipy import *
from numpy import *
import matplotlib.pyplot as plt

dF = pd.read_csv("Example.csv", sep=';')
xresult = []
#xresult = [abs(dF.x)]

xresult = dF.x.fillna(method = 'ffill') #bfill=backwardfill, ffill is filling the list with value before if na(=NaN)

xresult = [abs(xresult)]
		
print xresult

k=np.mean(xresult)
print k
print (np.std(xresult))

m = k*1.50
n = k*0,5t
print m
print n

for i in range(len(dF.x)):
	if dF.x[i+1] > m:#if you compare a numpy array with a number you get another array
		dF.x[i+1] = dF.x[i]
	elsif:
		if dF.x[i+1] < n:
			dF.x[i+1] = dF.x[i]
Zuletzt geändert von Anonymous am Montag 12. August 2013, 09:41, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
Sirius3
User
Beiträge: 17748
Registriert: Sonntag 21. Oktober 2012, 17:20

@Marleb: Bei diesem Programm bekommst Du einen Syntax-Fehler in der drittletzten Zeile und bei »n=…«.
Du kannst also nicht diesen Fehler bekommen, den Du da beschreibst. Also poste doch das wirkliche Programm, inklusive der Zeile in der der Fehler auftritt, am besten als Stacktrace.
Noch besser, Du vergißt Deine Idee, Meßwerte zu verfälschen und liest in entsprechender Literatur wie man verrauschte Messungen aufbereiten kann. Ich würde ja in Deinem Fall einen Median-Filter vorschlagen.
Antworten