2017-03-05 4 views
-1

Sorry, kippe keine Links, weil keine Reputation zeigt.Brauchen Sie Hilfe sezieren diese Numpy Slicing-Code

Unten ist der Code, den ich auf gestolpert bin immer:

Prognose aus einer ganzen Zahl gleich etwa 30.

forecast_out = int(math.ceil(0.01*len(df))) 

unterhalb er einen Array aus einem Pandas Datenrahmen schafft. Das Array enthält die gleichen Werte wie das df, aber ohne die df-Spalte 'label'.

X = np.array(df.drop(['label'], 1)) 

Skalierung für Genauigkeit und Verarbeitungsgeschwindigkeit

X = preprocessing.scale(X) 

das sind die Aussagen Ich bin verwirrt. Ich sehe, er erstellt zwei numpige Arrays aus dem obigen Array X. Meine beste Schätzung: Wenn wir prognose_out gleich 30 nehmen, sagt die erste Zeile unten, ein neues Array X_Lately zu erstellen, das den letzten # 30 Zeilen des Arrays entspricht X. Ist das korrekt?

X_lately = X[-forecast_out:] 

Ich habe keine Ahnung, was dieser Teil bedeutet. Ist es eine gültige Syntax, eine Ganzzahl zwischen ':' zu haben?

X = X[:forecast_out:] 

Alles wird hilfreich sein. Vielen Dank.

+0

Bitte posten Sie '' 'df.head()' ''. Was ist Vorverarbeitung? – wwii

+0

Ja, '' 'X [-forecast_out:]' '' ist die letzte 'prognose_out' Zeile. Für den zweiten, bist du sicher, dass es keinen Tippfehler gibt? Das sieht nicht korrekt aus - hast du es versucht? Was hat es getan? – wwii

+2

Der Slice ': prognose_out:' ist der gleiche wie ': prognose_out'. Es gibt die ersten 'prognose_out' Elemente. Der optionale dritte Teil eines Slices ist die Schrittgröße. Die allgemeinste Form der Slice-Notation ist 'start: stop: step'. ': prognose_out:' gibt nur den 'stop'-Wert an, also sind Start und Schritt die Standardwerte, die 0 bzw. 1 sind. –

Antwort

0

Wie bereits in den Kommentaren aus :x ist genau das samee als :x::

>>> class peek: 
... def __getitem__(self, key): 
...  return key 
... 
>>> a = peek() 
>>> a[:4] 
slice(None, 4, None) 
>>> a[:4:] 
slice(None, 4, None) 

, weshalb die Form, die Sie nicht sehr oft verwendet, verwirrt.