Array-Attribute und -Inspektion
Untersuchen Sie die Attribute ndim, shape, size und dtype und lernen Sie, ein Array mit reshape() umzuformen.
Array-Attribute und -Inspektion ist eine kostenlose Pandas & NumPy Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Pandas & NumPy Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Pandas & NumPy Academy-Kurs umfasst insgesamt 4 Lektionen.
Warum Array-Attribute wichtig sind
Bevor Sie mit einem Array arbeiten, sollten Sie seine shape, Dimensionen und seinen dtype kennen. NumPy stellt Ihnen diese Informationen sofort über ressourcenschonende Attribute bereit.
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
print('ndim:', a.ndim) # 2
print('shape:', a.shape) # (2, 3)
print('size:', a.size) # 6
print('dtype:', a.dtype) # int64ndim: Anzahl der Dimensionen
ndim gibt an, wie viele Dimensionen ein Array besitzt: Eine flache Liste hat 1 Dimension, eine Liste von Listen 2, und ML-Tensoren haben häufig 3 oder 4.
import numpy as np
v = np.array([1, 2, 3])
print(v.ndim) # 1
m = np.zeros((4, 5))
print(m.ndim) # 2
t = np.ones((2, 3, 4))
print(t.ndim) # 3shape: Das Dimensionstupel
shape ist ein Tupel mit einer Größe pro Dimension. Bei einem 2-D-Array entspricht das (rows, columns) – Sie können die Werte entpacken, um flexiblen Code zu schreiben.
import numpy as np
a = np.arange(24).reshape(2, 3, 4)
print(a.shape) # (2, 3, 4)
n_rows, n_cols = np.zeros((5, 7)).shape
print(n_rows, n_cols) # 5 7size: Gesamtzahl der Elemente
size gibt die Gesamtzahl der Elemente an – das Produkt aller Werte in shape. Das ist praktisch, um zu überprüfen, dass ein reshape nichts verloren hat.
import numpy as np
a = np.ones((3, 4, 5))
print(a.size) # 60 (3*4*5)
print(np.prod(a.shape))# 60
# Memory estimate in bytes
print(a.size * a.itemsize, 'bytes') # 480 bytesdtype: Datentyp der Elemente
Der dtype beschreibt den Typ jedes Elements, und itemsize gibt dessen Größe in Byte an. Der Wechsel von float64 zu float32 halbiert den Speicherbedarf und ist oft schneller.
import numpy as np
a = np.array([1.5, 2.5, 3.5])
print(a.dtype) # float64
print(a.itemsize) # 8 bytes
b = a.astype(np.float32)
print(b.dtype) # float32
print(b.itemsize) # 4 bytesnbytes: Gesamter Speicherbedarf
nbytes ist der gesamte Speicherbedarf des Arrays in Byte – einfach size mal itemsize. Überprüfen Sie den Wert vor und nach dem Downcasting, um zu bestätigen, dass tatsächlich Speicher eingespart wurde.
import numpy as np
a = np.ones((1000, 1000), dtype=np.float64)
print(a.nbytes) # 8000000 (8 MB)
b = a.astype(np.float32)
print(b.nbytes) # 4000000 (4 MB)reshape(): Array-Form ändern
reshape gibt dem Array eine neue Form, ohne die Daten zu kopieren, solange die Elementanzahl gleich bleibt. Übergeben Sie -1, und NumPy ermittelt diese Dimension automatisch.
import numpy as np
a = np.arange(12)
print(a.shape) # (12,)
b = a.reshape(3, 4)
print(b.shape) # (3, 4)
c = a.reshape(2, -1) # -1 inferred as 6
print(c.shape) # (2, 6)Mit ravel() und flatten() abflachen
Sowohl ravel() als auch flatten() reduzieren ein Array auf 1-D. Der Unterschied: ravel verwendet normalerweise denselben Speicher (keine Kopie), während flatten immer eine neue Kopie erstellt.
import numpy as np
m = np.array([[1, 2, 3], [4, 5, 6]])
r = m.ravel() # view (usually)
f = m.flatten() # always a copy
print(r) # [1 2 3 4 5 6]
print(f) # [1 2 3 4 5 6]Arrays transponieren
Das Attribut .T liefert die Transponierte – Zeilen und Spalten werden vertauscht. Das kostet nichts (es werden keine Daten kopiert) und ist entscheidend, um Matrizen korrekt auszurichten.
import numpy as np
m = np.array([[1, 2, 3], [4, 5, 6]]) # shape (2, 3)
print(m.T.shape) # (3, 2)
print(m.T)
# [[1 4]
# [2 5]
# [3 6]]strides: Speicherlayout
strides geben an, wie viele Byte NumPy pro Dimension im Speicher weiterspringt. Deshalb ist Transponieren kostenlos – dabei werden lediglich die Stride-Werte vertauscht.
import numpy as np
a = np.ones((3, 4), dtype=np.float64)
print(a.strides) # (32, 8) — 4 cols x 8 bytes, 1 col x 8 bytes
b = a.T
print(b.strides) # (8, 32) — strides swapped, no data copyViews und Kopien überprüfen
Eine view verwendet denselben Speicher wie das Original, sodass eine Änderung beide verändert; eine Kopie ist unabhängig. Verwenden Sie np.shares_memory(a, b), um zu überprüfen, was vorliegt.
import numpy as np
a = np.arange(6)
b = a.reshape(2, 3) # view
print(np.shares_memory(a, b)) # True
c = a.copy()
print(np.shares_memory(a, c)) # FalseSchnelltest
Testen Sie Ihr Verständnis der NumPy-Array-Attribute aus dieser Lektion.
Lektionszusammenfassung
Sie machen gute Fortschritte! ndim, shape und size beschreiben die Struktur, dtype beschreibt die Daten, und reshape gibt eine view zurück, während flatten immer kopiert. Als Nächstes folgt Arithmetik mit Arrays.
Lerne Python mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 30
- Lektionen
- 120
Häufig gestellte Fragen
Ist die Lektion „Array-Attribute und -Inspektion“ kostenlos?
Ja — der vollständige Text von „Array-Attribute und -Inspektion“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Pandas & NumPy Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Pandas & NumPy Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Array-Attribute und -Inspektion“?
Untersuchen Sie die Attribute ndim, shape, size und dtype und lernen Sie, ein Array mit reshape() umzuformen. Du übst Pandas & NumPy Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Pandas & NumPy Academy zu starten?
Keine Vorkenntnisse erforderlich. Pandas & NumPy Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Array-Attribute und -Inspektion“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Pandas & NumPy Academy-Lektion Code schreiben und ausführen?
Ja. Jede Pandas & NumPy Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- NumPy-Arrays erstellen
- Array-Attribute und -Inspektion
- Elementweise Arithmetik
- Array-Slicing und -Indexierung