Form der array-python
Angenommen, ich erstelle ein 2-dimensionales array
m = np.random.normal(0, 1, size=(1000, 2))
q = np.zeros(shape=(1000,1))
print m[:,0] -q
Wenn ich m[:,0].shape
bekomme ich (1000,)
im Gegensatz zu (1000,1)
das ist, was ich will. Wie kann ich die zwingen m[:,0]
zu einem (1000,1)
array?
Ich möchte einfach eine ein-Spalten-Vektor mit 1000 Zeilen, die ich versuche zu subtrahieren zwei Spalten-Vektoren
Ich denke
manchmal sind Sie austauschbar, da, wie numpy Rundfunk arbeitet, aber Sie sind nicht ganz dasselbe.
Sie können sehen, dass, wenn Sie geben Sie einfach
naja, die beiden Objekte haben unterschiedliche Dimensionalität. Für eine gute Ausstrahlung Erklärung können Sie Lesen, dieser tutorial.
Ich denke
(1000,)
ist das gleiche wie (1000,1)
manchmal sind Sie austauschbar, da, wie numpy Rundfunk arbeitet, aber Sie sind nicht ganz dasselbe.
Sie können sehen, dass, wenn Sie geben Sie einfach
m[:,0]
(Vorbereitung für ein bisschen scrollen 🙂naja, die beiden Objekte haben unterschiedliche Dimensionalität. Für eine gute Ausstrahlung Erklärung können Sie Lesen, dieser tutorial.
InformationsquelleAutor lord12 | 2013-03-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Indem Sie die 0. Spalte in allem, als Sie bemerkt habe, Sie reduzieren die Dimensionalität:
Haben Sie eine Menge von Optionen, um eine 5x1-Objekt zurück. Sie können index mit Hilfe einer Liste, anstatt eine Ganzzahl:
Können Sie Fragen, für "alle Spalten bis einschließlich, aber nicht 1":
Oder verwenden Sie
None
(odernp.newaxis
), das ist ein allgemeiner trick erweitern die Dimensionen:Schließlich kann man Umformen:
aber ich würde verwenden eine der anderen Methoden für einen Fall wie diesen.
m[:,[0]]
ist subtil anders, da es sich löst fancy indexing, was bedeutet, dass das Ergebnis nicht einer Ansicht.wahr genug. Ich bin glücklich, dass ich selten Angst haben, entweder auf den Speicher oder Leistung Fronten, und so habe ich wohl gewachsen, ein wenig schlampig..
InformationsquelleAutor DSM