Pandas & NumPy Academy · Lektion

Array-Attribute und -Inspektion

Untersuchen Sie die Attribute ndim, shape, size und dtype und lernen Sie, ein Array mit reshape() umzuformen.

Lektion 2 von 413 Schritte

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)  # int64

ndim: 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)   # 3

shape: 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 7

size: 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 bytes

dtype: 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 bytes

nbytes: 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 copy

Views 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))  # False

Schnelltest

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.

Kostenlos starten

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

  1. NumPy-Arrays erstellen
  2. Array-Attribute und -Inspektion
  3. Elementweise Arithmetik
  4. Array-Slicing und -Indexierung
← Zurück zu Pandas & NumPy Academy