Verständnis der Least Square-Funktion von scipy mit IRLS

Ich habe ein bisschen Probleme zu verstehen, wie diese Funktion funktioniert.

a, b = scipy.linalg.lstsq(X, w*signal)[0]

Ich weiß, dass dieses Signal das Array ist, das das Signal darstellt und aktuellw ist nur[1,1,1,1,1...]

Wie soll ich manipulierenX oderw kleinste Quadrate nachahmen oder kleinste Quadrate iterativ neu gewichten?