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.
def zeroMaker(dist1, dist2):
from numpy import size, fabs, append
vector1 = dist1
vector2 = dist2
ii = 0
a = size(vector1)
b = size(vector2)
if a < b:
while ii < fabs(a-b):
vector1.append(0)
ii += 1
elif a > b:
while ii < fabs(a-b):
vector2.append(0)
ii += 1
else:
print 'Vectors have same number of elements'
Führe ich dann alles direkt als skript aus, also nicht als Funktion, geht es. Woran könnte das liegen?
Zeilen 4 und 5 kannst du dir sparen, dort werden nur Referenzen kopiert. Die while-Schleifen kannst du durch eine for-Schleife ersetzen, die Unterscheidung für vector1 und vector2 kannst du einmal vorher erledigen. Ein Blick in PEP 8 lohnt sich wahrscheinlich auch
EyDu hat geschrieben:Zeilen 4 und 5 kannst du dir sparen, dort werden nur Referenzen kopiert. Die while-Schleifen kannst du durch eine for-Schleife ersetzen, die Unterscheidung für vector1 und vector2 kannst du einmal vorher erledigen. Ein Blick in PEP 8 lohnt sich wahrscheinlich auch
ja das stimmt, trotzdem löst es aber das eigentliche problem nicht.
Ich will ja einfach schauen, ob 2 arrays dieselbe Länge haben, falls dies nicht der Fall ist, soll das kürzere der beiden so lange mit 0 aufgefüllt werden, bis sie gleichlang sind.
CM hat geschrieben:Oh, und wozu brauchst das Zero-Padding? Bei manchen Funktionen (z. B. FFTs) steht das Notwendige in der Doku - und man muß es nicht selber machen.
ich will mit zwei datenarrays nen pearson chi square test machen und da brauch ich zwei gleich lange vektoren.
Apropos, gibt es für python ne implementierung vom pearson? ich hab zwar schon eine implementiert, aber ne fertige wär als referenz nicht schlecht.
Und Du hälst es für eine gute Idee in diesem Fall zero-padding zu machen? Ist das bei diesen Daten wirklich möglich? (edit: möglich im Sinne von mathematisch möglich)
Und Du hälst es für eine gute Idee in diesem Fall zero-padding zu machen? Ist das bei diesen Daten wirklich möglich? (edit: möglich im Sinne von mathematisch möglich)
Hi, ja ist möglich...und macht durchaus Sinn in diesem Fall.
def zeroMaker(dist1, dist2):
from numpy import size, fabs, append, zeros
a = size(dist1)
b = size(dist2)
pad = zeros(fabs(a-b))
if a < b:
dist1 = append(dist1, pad)
elif a > b:
dist2 = append(dist2, pad)
else:
print 'Vectors have same number of elements'
return dist1, dist2