numpy — numpy-kompatible Array-Operationen

Das Submodul numpy von ulab stellt eine numpy-kompatible API bereit, die um den n-dimensionalen Array-Typ ndarray herum aufgebaut ist. Es implementiert eine ausgewählte Teilmenge von CPython numpy: Array-Konstruktion, elementweise Mathematik, Reduktionen und Statistik, lineare Algebra, FFTs, Erzeugung von Zufallszahlen, Polynomanpassung und grundlegende Ein-/Ausgabe.

Das Submodul wird üblicherweise als np importiert:

from ulab import numpy as np

a = np.array([1, 2, 3, 4], dtype=np.float)
b = np.linspace(0, 1, num=5)
c = np.dot(a.reshape((2, 2)), a.reshape((2, 2)))

Jedes dtype-Argument ist eine der auf Modulebene bereitgestellten Ganzzahlkonstanten: numpy.bool, numpy.uint8, numpy.int8, numpy.uint16, numpy.int16, numpy.float (Standard) und (sofern komplexe Unterstützung einkompiliert ist) numpy.complex. Der Ergebnistyp ndarray verweist auf numpy.ndarray.

Submodule

Klasse ndarray — das n-dimensionale Array

Das ndarray ist der n-dimensionale, dtype-bewusste Container im Kern von numpy / ulab. Die Daten werden in einem zusammenhängenden Block gespeichert, dessen Interpretation durch einen kleinen Header (dtype, shape, strides, ndim, itemsize) beschrieben wird. Viele Operationen – reshape, transpose, Slicing – passen nur diesen Header an und sind daher sehr günstig; Methoden, die neuen Speicher belegen (copy, flatten, die meisten arithmetischen Operationen), geben ein neues dichtes Array zurück.

Derselbe Typ ist als ulab.ndarray, numpy.ndarray und (innerhalb dieser Seite) einfach als ndarray erreichbar.

class numpy.ndarray(values: ndarray | bytes | list | tuple, *, dtype: int = numpy.float)

Erzeugt ein neues ndarray.

Parameter:
  • values – Quelldaten. Entweder ein anderes ndarray (das tief kopiert wird, mit Typkonvertierung, falls sich dtype unterscheidet) oder ein beliebiges iterierbares MicroPython-Objekt. Verschachtelte iterierbare Objekte erzeugen mehrdimensionale Arrays; die inneren iterierbaren Objekte müssen alle dieselbe Länge haben, andernfalls wird ein ValueError ausgelöst.

  • dtype – Elementtyp für das neue Array. Eine der von numpy bereitgestellten Typ-Code-Ganzzahlen (numpy.bool, numpy.uint8, numpy.int8, numpy.uint16, numpy.int16, numpy.float und – sofern unterstützt – numpy.complex) oder eine dtype-Instanz. Standardwert ist numpy.float.

Die Fabrikfunktion numpy.array ist die übliche Methode, um ein ndarray zu erzeugen; sie leitet an diesen Konstruktor weiter.

byteswap(*, inplace: bool = False) ndarray

Vertauscht die Byte-Reihenfolge jedes Elements. Bei uint16-, int16-, float- und complex-Arrays kehrt dies die Byte-Reihenfolge pro Element um, was nützlich ist, wenn Daten von Peripheriegeräten verarbeitet werden, deren Endianness nicht mit der des Mikrocontrollers übereinstimmt. Bei Ein-Byte-dtypes (bool, uint8, int8) ist dies eine wirkungslose Operation, die eine Ansicht oder Kopie zurückgibt.

Wenn inplace gleich False ist (Standard), wird ein neues ndarray zurückgegeben und das Original bleibt unverändert. Wenn inplace gleich True ist, werden die Bytes von self an Ort und Stelle vertauscht und eine Ansicht von self zurückgegeben.

copy() ndarray

Gibt eine neue dichte, tiefe Kopie des Arrays zurück. Die Kopie besitzt ihre eigenen Daten; Änderungen daran wirken sich nicht auf das Original aus.

flatten(*, order: str = 'C') ndarray

Gibt eine neue eindimensionale Kopie des Arrays zurück.

Parameter:

order'C' (Standard) durchläuft die Daten in C-Reihenfolge (letzte Achse variiert am schnellsten); 'F' durchläuft sie in Fortran-Reihenfolge (erste Achse variiert am schnellsten).

reshape(shape: int | tuple[int, ...]) ndarray

Gibt eine Ansicht des Arrays mit einer neuen Form zurück. Die Gesamtzahl der Elemente muss unverändert bleiben, andernfalls wird ein ValueError ausgelöst. Nur verfügbar, wenn ULAB_MAX_DIMS > 1. Entspricht der Zuweisung an shape.

sort(*, axis: int | None = -1) None

Sortiert das Array an Ort und Stelle.

Parameter:

axis – Achse, entlang der sortiert wird. -1 (Standard) sortiert entlang der letzten Achse; None flacht das Array zunächst ab und sortiert es dann.

tobytes() bytearray

Gibt ein bytearray zurück, das den zugrunde liegenden Datenpuffer des Arrays referenziert. Schreibvorgänge über das zurückgegebene bytearray ändern das Array an Ort und Stelle. Löst ValueError aus, wenn das Array nicht dicht ist (z. B. eine gesliced Ansicht).

tolist() list

Gibt den Inhalt des Arrays als (möglicherweise verschachtelte) Python-list zurück. Die Verschachtelungstiefe entspricht ndim.

transpose() ndarray

Gibt die Transponierte des Arrays zurück (umgekehrte Achsen). Für eindimensionale Arrays wird self zurückgegeben. Nur verfügbar, wenn ULAB_MAX_DIMS > 1. Das Attribut T ist eine Kurzform für diese Methode.

dtype: dtype | int

Der Datentyp der Array-Elemente. Gibt eine dtype-Instanz zurück, wenn die Firmware mit aktiviertem ULAB_HAS_DTYPE_OBJECT erstellt wurde, andernfalls den zugrunde liegenden Ein-Zeichen-Typ-Code als Ganzzahl.

flat: flatiter

Ein flacher Iterator, der jedes Element des Arrays in C-Reihenfolge liefert. Anders als flatten() belegt das Iterieren über flat kein neues Array.

itemsize: int

Größe eines einzelnen Array-Elements in Bytes, abgeleitet aus dtype.

ndim: int

Anzahl der Array-Dimensionen (Länge von shape).

shape: tuple[int, ...]

Längen des Arrays entlang jeder Achse. Die Zuweisung eines Tupels an shape ändert die Form des Arrays an Ort und Stelle (entspricht reshape()).

size: int

Gesamtzahl der Elemente im Array (das Produkt von shape).

strides: tuple[int, ...]

Anzahl der Bytes, die im Speicher entlang jeder Achse zu durchlaufen sind, um das nächste Element entlang dieser Achse zu erreichen.

T: ndarray

Die Transponierte des Arrays; entspricht transpose().

real: ndarray

Der Realteil eines komplexen Arrays, zurückgegeben als float-ndarray. Bei reellen Arrays ist dies eine Kopie von self mit demselben dtype. Nur verfügbar, wenn die Firmware mit komplexer Unterstützung erstellt wurde.

imag: ndarray

Der Imaginärteil eines komplexen Arrays, zurückgegeben als float-ndarray. Bei reellen Arrays ist dies ein Array aus Nullen mit demselben dtype wie self. Nur verfügbar, wenn die Firmware mit komplexer Unterstützung erstellt wurde.

Unterstützte Operatoren

ndarray-Instanzen unterstützen die folgenden Operatoren. Binäre Operatoren broadcasten ihre Operanden gemäß den standardmäßigen numpy-Broadcasting-Regeln und folgen den Aufwärtskonvertierungsregeln von numpy (z. B. uint8 + int8 => int16, uint16 + int16 => float); Operationen mit einem komplexen Operanden erzeugen ein komplexes Ergebnis.

Arithmetik (binär): +, -, *, /, //, %, **. Reflektierte (rechtsseitige) Operanden sowie die In-Place-Varianten +=, -=, *=, /=, %=, **= werden ebenfalls unterstützt. Es werden sowohl ndarray-mit-ndarray- als auch ndarray-mit-Skalar-Formen akzeptiert. Ganzzahldivision (//) und der Modulo-Operator (%) sind für complex-Arrays nicht implementiert.

Vergleich: ==, !=, <, <=, >, >=. Jeder gibt ein boolesches ndarray der Broadcast-Form zurück.

Bitweise (nur Ganzzahl-Arrays): &, |, ^. Das Anwenden auf ein float- oder complex-Array löst TypeError aus.

Unär: + (gibt eine Kopie zurück), - (Negation; bei vorzeichenlosen dtypes wickeln sich die Werte modulo \(2^N\) um), abs() (elementweiser Absolutwert; bei vorzeichenlosen dtypes wird ohne Berechnung eine Kopie zurückgegeben), ~ (bitweise Inversion, nur Ganzzahl-dtypes), len() (gibt die Länge der ersten Achse zurück).

Indizierung und Slicing: a[i], a[i, j, ...], a[start:stop:step], boolesche Maskenindizierung (a[mask]) und Ganzzahl-Array-Indizierung (Fancy Indexing) werden alle sowohl beim Lesen als auch beim Schreiben unterstützt.

Iteration: Das Iterieren über ein ndarray liefert Teil-Arrays entlang der ersten Achse (bei 1-D-Arrays jeweils ein Element). Verwenden Sie flat, um unabhängig von der Dimensionalität über jedes skalare Element zu iterieren.

Der Matrixmultiplikationsoperator @ ist nicht implementiert; verwenden Sie stattdessen numpy.dot (np.dot(a, b)).

Die Verschiebungsoperatoren (<<, >>) sind nicht auf Operatorebene implementiert. Verwenden Sie numpy.left_shift und numpy.right_shift für elementweise Ganzzahlverschiebungen.

Array-Konstruktion

numpy.array(values: ndarray | list | tuple, *, dtype: int = float) ndarray

Konstruiert ein neues ndarray aus einem verschachtelten iterierbaren Objekt von Zahlen. Entspricht dem alternativen Konstruktor für numpy.ndarray.

numpy.arange(start: int | float, stop: int | float | None = None, step: int | float = 1, *, dtype: int | None = None) ndarray

Gibt gleichmäßig beabstandete Werte über das halboffene Intervall [start, stop) zurück. Wenn nur ein Positionsargument angegeben wird, wird es als stop mit start = 0 behandelt. Wenn dtype weggelassen wird, wird es aus den Eingaben abgeleitet (Ganzzahl, falls start, stop und step alle Ganzzahlen und im Bereich sind).

numpy.asarray(a: ndarray | list | tuple, *, dtype: int | None = None) ndarray

Wenn a bereits ein ndarray ist, dessen dtype mit dtype übereinstimmt (oder dtype gleich None ist), wird a unverändert zurückgegeben; andernfalls wird ein neues Array erzeugt (mit der angeforderten dtype-Konvertierung, sofern angegeben). Iterierbare Objekte werden wie in numpy.array konvertiert.

numpy.concatenate(arrays: tuple, *, axis: int = 0) ndarray

Verbindet eine Sequenz von ndarray entlang einer vorhandenen Achse axis. Alle Eingabe-Arrays müssen denselben dtype, dieselbe ndim und auf jeder Achse außer axis dieselbe Form besitzen.

numpy.diag(a: ndarray, *, k: int = 0) ndarray

Für ein 2-D-a wird ein 1-D-Array zurückgegeben, das die k-te Diagonale enthält. Für ein 1-D-a wird ein 2-D-Quadratarray zurückgegeben, in dem a auf der k-ten Diagonale platziert ist. k kann positiv (oberhalb der Hauptdiagonale) oder negativ (unterhalb) sein.

numpy.empty(shape: int | tuple[int, ...], *, dtype: int = float) ndarray

Alias für zeros; gibt ein mit Nullen gefülltes Array der Form shape und des Typs dtype zurück. (ulab lässt den Puffer nicht uninitialisiert.)

numpy.eye(N: int, M: int | None = None, k: int = 0, *, dtype: int = float) ndarray

Gibt ein 2-D-N x M-Array zurück (quadratisch N x N, falls M gleich None ist) mit Einsen auf der k-ten Diagonale und Nullen andernorts.

numpy.frombuffer(buffer: bytes, *, dtype: int = float, count: int = -1, offset: int = 0) ndarray

Interpretiert ein Buffer-Protokoll-Objekt als 1-D-ndarray vom Typ dtype. count ist die Anzahl der zu lesenden Elemente (-1 liest alle verfügbaren Elemente); offset überspringt so viele Bytes am Anfang des Puffers.

numpy.full(shape: int | tuple[int, ...], fill_value: int | float | bool, *, dtype: int = float) ndarray

Gibt ein neues Array der Form shape und des Typs dtype zurück, bei dem jedes Element auf fill_value gesetzt ist.

numpy.linspace(start: float, stop: float, num: int = 50, *, endpoint: bool = True, retstep: bool = False, dtype: int = float) ndarray | tuple[ndarray, float]

Gibt num gleichmäßig beabstandete Stichproben über das geschlossene Intervall [start, stop] zurück (oder halboffen, falls endpoint gleich False ist). Wenn retstep gleich True ist, wird ein Tupel (samples, step) zurückgegeben. Komplexe start/stop erzeugen ein komplexes Array (wenn komplexe Unterstützung aktiviert ist).

numpy.logspace(start: float, stop: float, num: int = 50, *, base: float = 10.0, endpoint: bool = True, dtype: int = float) ndarray

Gibt num gleichmäßig auf einer logarithmischen Skala beabstandete Stichproben zurück: Das Ergebnis beginnt bei base ** start und endet bei base ** stop.

numpy.meshgrid(*xi: ndarray, indexing: str = 'xy') tuple[ndarray, ...]

Gibt ein Tupel von Koordinatenmatrizen aus einer Sequenz eindimensionaler Koordinaten-Arrays zurück. Mit indexing 'xy' (Standard) werden die ersten beiden Eingaben als kartesische Koordinaten behandelt und ihre Ausgabeachsen vertauscht; mit 'ij' wird Matrix-Indizierung verwendet. Die Implementierung entspricht dem NumPy-Äquivalent mit copy=True und sparse=False.

numpy.ones(shape: int | tuple[int, ...], *, dtype: int = float) ndarray

Gibt ein neues Array der Form shape und des Typs dtype gefüllt mit Einsen zurück.

numpy.zeros(shape: int | tuple[int, ...], *, dtype: int = float) ndarray

Gibt ein neues Array der Form shape und des Typs dtype gefüllt mit Nullen zurück.

Inspektion / Ausgabe

numpy.get_printoptions() dict

Gibt die aktuellen Array-Ausgabeoptionen als Dict mit den Schlüsseln threshold und edgeitems zurück.

numpy.set_printoptions(*, threshold: int | None = None, edgeitems: int | None = None) None

Legt die Array-Ausgabeoptionen fest. threshold ist die maximale Anzahl von Array-Elementen, die vollständig ausgegeben werden; edgeitems ist die Anzahl der Elemente, die an jedem Ende einer Achse angezeigt werden, wenn das Array zusammengefasst wird.

numpy.ndinfo(array: ndarray) None

Gibt Diagnoseinformationen (shape, strides, dtype, itemsize, …) über array aus.

numpy.size(a: ndarray, *, axis: int | None = None) int

Gibt die Anzahl der Elemente von a entlang axis zurück; wenn axis gleich None ist, wird die Gesamtzahl der Elemente zurückgegeben (das Produkt von ndarray.shape).

Vergleich

numpy.clip(a: ndarray | int | float, a_min: ndarray | int | float, a_max: ndarray | int | float) ndarray | int | float

Begrenzt die Werte von a, sodass a_min <= result <= a_max. Entspricht maximum(a_min, minimum(a, a_max)); das Broadcasting folgt denselben Regeln wie minimum.

numpy.equal(x1: ndarray | int | float, x2: ndarray | int | float) ndarray | bool

Elementweises x1 == x2; gibt ein boolesches ndarray zurück (oder einen bool-Skalar, falls beide Eingaben Skalare sind). Zur Portabilität bereitgestellt – der ==-Operator auf Arrays liefert dasselbe Ergebnis.

numpy.not_equal(x1: ndarray | int | float, x2: ndarray | int | float) ndarray | bool

Elementweises x1 != x2; das boolesche Gegenstück zu equal.

numpy.isfinite(x: ndarray | int | float) ndarray | bool

Gibt ein boolesches Array (oder einen Skalar) zurück, das/der True ist, wo die Eingabe endlich ist. Ganzzahlige Eingaben sind immer endlich.

numpy.isinf(x: ndarray | int | float) ndarray | bool

Gibt ein boolesches Array (oder einen Skalar) zurück, das/der True ist, wo die Eingabe unendlich ist. Ganzzahlige Eingaben sind nie unendlich.

numpy.maximum(x1: ndarray | int | float, x2: ndarray | int | float) ndarray | int | float

Elementweises Maximum zweier Arrays / Skalare. Die Argumente werden zusammen gebroadcastet; falls sich die dtypes unterscheiden, wird die Ausgabe aufwärtskonvertiert.

numpy.minimum(x1: ndarray | int | float, x2: ndarray | int | float) ndarray | int | float

Elementweises Minimum zweier Arrays / Skalare; Gegenstück zu maximum.

numpy.nonzero(a: ndarray) tuple[ndarray, ...]

Gibt ein Tupel von ndarray zurück, eines pro Dimension von a, das die Indizes der von null verschiedenen Elemente von a enthält.

numpy.where(condition: ndarray | int | float, x: ndarray | int | float, y: ndarray | int | float) ndarray

Gibt ein ndarray zurück, dessen Elemente aus x stammen, wo condition wahr ist, und aus y andernfalls. Die drei Eingaben werden zusammen gebroadcastet; der Ausgabe-dtype ist die Aufwärtskonvertierung von x und y.

Numerische Reduktionen

numpy.all(a: ndarray | list | tuple, *, axis: int | None = None) ndarray | bool

Prüft, ob alle Elemente entlang axis zu True ausgewertet werden. Mit axis=None (Standard) wird das abgeflachte Array getestet und ein einzelner bool zurückgegeben.

numpy.any(a: ndarray | list | tuple, *, axis: int | None = None) ndarray | bool

Prüft, ob irgendein Element entlang axis zu True ausgewertet wird. Mit axis=None wird das abgeflachte Array getestet.

numpy.argmax(a: ndarray | list | tuple, *, axis: int | None = None) ndarray | int

Gibt den Index des größten Elements entlang axis zurück. Mit axis=None wird das Array abgeflacht und eine einzelne Ganzzahl zurückgegeben.

numpy.argmin(a: ndarray | list | tuple, *, axis: int | None = None) ndarray | int

Gibt den Index des kleinsten Elements entlang axis zurück. Mit axis=None wird das Array abgeflacht und eine einzelne Ganzzahl zurückgegeben.

numpy.argsort(a: ndarray, *, axis: int = -1) ndarray

Gibt ein vorzeichenloses Ganzzahl-Index-ndarray zurück, dessen Einträge a in aufsteigender Reihenfolge entlang axis sortieren. Der Ausgabe-dtype ist uint16, daher darf keine Achse 65535 Elemente überschreiten. axis=None wird nicht unterstützt.

numpy.cross(a: ndarray, b: ndarray) ndarray

Gibt das Kreuzprodukt zweier 1-D-Arrays der Länge 3 zurück.

numpy.diff(a: ndarray, *, n: int = 1, axis: int = -1) ndarray

Gibt die n-te diskrete Vorwärtsdifferenz von a entlang axis zurück. n muss im Bereich 0..9 liegen (die Differenzierungsschablone wird in einem int8 gespeichert); die Länge von axis schrumpft um n. Die numpy-Schlüsselwörter prepend und append sind nicht implementiert.

numpy.flip(a: ndarray, *, axis: int | None = None) ndarray

Gibt ein neues Array zurück, in dem die Reihenfolge der Elemente entlang axis umgekehrt ist; mit axis=None wird das Array entlang jeder Achse umgekehrt.

numpy.max(a: ndarray | list | tuple, *, axis: int | None = None, keepdims: bool = False) ndarray | int | float

Gibt das größte Element entlang axis zurück. Mit axis=None (Standard) wird das abgeflachte Array auf einen Skalar reduziert. Das numpy-Schlüsselwort out ist nicht implementiert.

numpy.min(a: ndarray | list | tuple, *, axis: int | None = None, keepdims: bool = False) ndarray | int | float

Gibt das kleinste Element entlang axis zurück; Gegenstück zu max.

numpy.mean(a: ndarray | list | tuple, *, axis: int | None = None, keepdims: bool = False) ndarray | float

Gibt das arithmetische Mittel entlang axis zurück. Mit axis=None (Standard) wird das Mittel des abgeflachten Arrays als float zurückgegeben.

numpy.median(a: ndarray, *, axis: int | None = None) ndarray | float

Gibt den Median entlang axis zurück. Mit axis=None wird das Array zuerst abgeflacht. Der Ausgabe-dtype ist immer float.

numpy.roll(a: ndarray, shift: int, *, axis: int | None = None) ndarray

Gibt a zurück, wobei seine Elemente um shift Positionen gerollt (zyklisch verschoben) werden. Mit axis=None (Standard) wird das Array zuerst abgeflacht. Negative Verschiebungen rollen in die entgegengesetzte Richtung.

numpy.sort(a: ndarray, *, axis: int = -1) ndarray

Gibt eine sortierte Kopie von a entlang axis unter Verwendung von Heap-Sort zurück. Mit axis=None wird das Array zuerst abgeflacht. Die numpy-Schlüsselwörter kind und order sind nicht implementiert.

numpy.std(a: ndarray | list | tuple, *, axis: int | None = None, ddof: int = 0, keepdims: bool = False) ndarray | float

Gibt die Standardabweichung entlang axis zurück. ddof ist der Delta-Freiheitsgrad – der verwendete Divisor ist N - ddof.

numpy.sum(a: ndarray | list | tuple, *, axis: int | None = None, keepdims: bool = False) ndarray | int | float

Gibt die Summe entlang axis zurück. Mit axis=None wird die Gesamtsumme des abgeflachten Arrays als Skalar zurückgegeben.

Statistik

numpy.bincount(x: ndarray, *, weights: ndarray | None = None, minlength: int | None = None) ndarray

Zählt die Anzahl der Vorkommen jedes Werts im eindimensionalen, nicht-negativen Ganzzahl-Array x. Der dtype von x muss uint8 oder uint16 sein. Wenn weights angegeben ist, trägt jeder Eintrag von x sein passendes Gewicht bei statt 1, und die Ausgabe ist vom dtype float; andernfalls ist die Ausgabe vom dtype uint16. Wenn minlength angegeben ist, hat das Ausgabe-Array mindestens so viele Elemente (zusätzliche Einträge sind null).

numpy.trace(m: ndarray) int | float

Gibt die Summe der Diagonalelemente der quadratischen Matrix m zurück. Der Rückgabetyp folgt dem dtype von m (Ganzzahl-Arrays erzeugen eine Ganzzahl, float-Arrays einen float).

Transformation

numpy.compress(condition: ndarray | list | tuple, a: ndarray, *, axis: int | None = None) ndarray

Gibt Ausschnitte von a zurück, die entlang axis durch die boolesche condition ausgewählt werden. Mit axis=None wird das abgeflachte Array verwendet.

numpy.delete(a: ndarray, indices: int | ndarray | list | tuple | range, *, axis: int | None = None) ndarray

Gibt eine Kopie von a zurück, bei der die Einträge an indices entlang axis entfernt sind. Mit axis=None wird das Array zuerst abgeflacht. Negative Indizes zählen vom Ende von axis; indices wird vor dem Löschen intern sortiert.

numpy.dot(m1: ndarray, m2: ndarray) ndarray | float

Gibt das Skalarprodukt zweier Arrays zurück. Für zwei 1-D-Arrays ist dies das innere Produkt (ein float-Skalar). Für 2-D-Arrays ist dies die Matrixmultiplikation; die inneren Dimensionen müssen übereinstimmen. Das Ergebnis ist immer vom dtype float.

Approximation

numpy.interp(x: ndarray, xp: ndarray, fp: ndarray, *, left: float | None = None, right: float | None = None) ndarray

Eindimensionale lineare Interpolation. xp muss ein monoton steigendes 1-D-Array unabhängiger Werte sein; fp enthält die entsprechenden abhängigen Werte; x sind die Punkte, an denen der Interpolant ausgewertet wird. left und right überschreiben den zurückgegebenen Wert für x < xp[0] bzw. x > xp[-1] (Standardwerte: fp[0] und fp[-1]).

numpy.trapz(y: ndarray, x: ndarray | None = None, dx: float = 1.0) float

Integriert y mit der zusammengesetzten Trapezregel. Wenn x angegeben ist, liefert es die Stichprobenpositionen, die zu y gehören; andernfalls wird der Abstand dx verwendet. y (und x) müssen 1-D sein.

Auswahl

numpy.take(a: ndarray, indices: ndarray | list | tuple, *, axis: int | None = None, out: ndarray | None = None, mode: str | None = None) ndarray

Entnimmt Elemente aus a an den angegebenen indices entlang axis. Mit axis=None wird das abgeflachte Array verwendet. mode wählt das Verhalten außerhalb der Grenzen: "raise" (Standard – löst ValueError aus), "wrap" (modulo der Achsenlänge) oder "clip" (auf den gültigen Bereich begrenzen; negative Indizes sind nicht erlaubt). Wenn out angegeben ist, wird das Ergebnis dort hineingeschrieben.

Bitweise

numpy.bitwise_and(x1: ndarray, x2: ndarray) ndarray

Elementweises bitweises UND zweier Ganzzahl-Arrays; Broadcasting wird unterstützt. Ein nicht-ganzzahliger dtype löst eine Ausnahme aus.

numpy.bitwise_or(x1: ndarray, x2: ndarray) ndarray

Elementweises bitweises ODER zweier Ganzzahl-Arrays.

numpy.bitwise_xor(x1: ndarray, x2: ndarray) ndarray

Elementweises bitweises XOR zweier Ganzzahl-Arrays.

numpy.left_shift(x1: ndarray, x2: ndarray) ndarray

Elementweise bitweise Verschiebung von x1 um x2 Bits nach links; beide Arrays müssen einen Ganzzahl-dtype haben.

numpy.right_shift(x1: ndarray, x2: ndarray) ndarray

Elementweise bitweise Verschiebung von x1 um x2 Bits nach rechts; beide Arrays müssen einen Ganzzahl-dtype haben.

Filterung

numpy.convolve(a: ndarray, v: ndarray) ndarray

Gibt die diskrete lineare Faltung zweier 1-D-Arrays zurück. Es wird nur der Modus "full" unterstützt; das numpy-Schlüsselwort mode wird nicht akzeptiert (andere Modi lassen sich durch Slicing des vollständigen Ergebnisses erhalten). Die Ausgabelänge beträgt len(a) + len(v) - 1.

Polynom

numpy.polyfit(x: ndarray | list | tuple, y: ndarray | list | tuple, deg: int) ndarray
numpy.polyfit(y: ndarray | list | tuple, deg: int) ndarray

Passt ein Polynom vom Grad deg mittels kleinster Quadrate an die Datenpunkte (x, y) an und gibt die Polynomkoeffizienten zurück (höchster Grad zuerst). Wenn x weggelassen wird, wird range(len(y)) verwendet. Löst ValueError aus, wenn sich die Längen von x und y unterscheiden.

numpy.polyval(p: ndarray | list | tuple, x: ndarray | list | tuple | int | float) ndarray | float

Wertet das Polynom mit den Koeffizienten p (höchster Grad zuerst) an der Stelle x aus. Wenn x ein Skalar ist, wird ein float zurückgegeben, andernfalls ein ndarray.

Ein-/Ausgabe

numpy.load(file: str) ndarray

Liest ein zuvor mit save geschriebenes Array aus file (numpys plattformunabhängiges .npy-Format). Die Endianness wird zur Laufzeit konvertiert, wenn die Byte-Reihenfolge der Datei von der des Hosts abweicht.

numpy.loadtxt(file: str, *, delimiter: str | None = None, comments: str = '#', max_rows: int = -1, usecols: int | ndarray | list | tuple | None = None, dtype: int = float, skiprows: int = 0) ndarray

Liest numerische Daten aus einer Text-file und gibt sie als ndarray zurück. delimiter ist standardmäßig Leerraum; comments ist der Zeilenkommentar-Marker; max_rows begrenzt die Anzahl der gelesenen Datenzeilen (-1 für alle); usecols wählt Spalten per Index; skiprows überspringt so viele führende Zeilen. Wenn dtype nicht float ist, werden Werte durch Runden konvertiert.

numpy.save(file: str, a: ndarray) None

Speichert a in file in numpys plattformunabhängigem .npy-Format.

numpy.savetxt(file: str, a: ndarray, *, delimiter: str = ' ', header: str | None = None, footer: str | None = None, comments: str = '# ') None

Schreibt a als Text in file. delimiter trennt Werte innerhalb einer Zeile; header und footer werden, falls angegeben, vor/nach den Daten geschrieben, jeweils mit comments präfixiert. Werte werden als Gleitkommazahlen geschrieben.

Komplexe Hilfsfunktionen

Diese Funktionen sind nur verfügbar, wenn ulab mit komplexer Unterstützung (ULAB_SUPPORTS_COMPLEX) kompiliert wurde.

numpy.real(val: ndarray) ndarray

Gibt den Realteil von val zurück. Für eine Eingabe mit reellem dtype wird eine Kopie unter Beibehaltung des dtype zurückgegeben; für eine komplexe Eingabe wird ein float-ndarray zurückgegeben.

numpy.imag(val: ndarray) ndarray

Gibt den Imaginärteil von val zurück. Für eine Eingabe mit reellem dtype wird ein Array aus Nullen mit demselben dtype zurückgegeben; für eine komplexe Eingabe wird ein float-ndarray zurückgegeben.

numpy.conjugate(val: ndarray | complex | int | float) ndarray | complex | int | float

Gibt die komplex Konjugierte von val zurück. Reellwertige Eingaben werden unverändert zurückgegeben.

numpy.sort_complex(a: ndarray) ndarray

Sortiert das 1-D-Array a zuerst nach dem Realteil, dann nach dem Imaginärteil. Das Ergebnis ist immer vom komplexen dtype, selbst wenn a reellwertig war.

Universelle Funktionen

Elementweise mathematische Funktionen. Jede akzeptiert einen Skalar oder ein ndarray und gibt ein Ergebnis passender Form zurück (einen float-Skalar bei skalarer Eingabe, ein ndarray bei Array-Eingabe). Beim Aufruf mit einem ndarray ist das Ergebnis ein neues Gleitkomma-ndarray; ein optionales out-Schlüsselwort kann übergeben werden, um das Ergebnis in ein vorab belegtes float-ndarray derselben Größe zu schreiben.

numpy.acos(x: ndarray | float, /) ndarray | float

Berechnet den Arkuskosinus (inverser Kosinus) jedes Elements von x; das Ergebnis ist in Radiant.

numpy.acosh(x: ndarray | float, /) ndarray | float

Berechnet den inversen hyperbolischen Kosinus jedes Elements von x.

numpy.arctan2(y: ndarray | float, x: ndarray | float, /) ndarray | float

Berechnet elementweise den Arkustangens mit zwei Argumenten atan2(y, x); unterstützt Broadcasting zwischen den beiden Eingaben.

numpy.around(x: ndarray, /, decimals: int = 0) ndarray

Rundet die Elemente des ndarray x auf die angegebene Anzahl von decimals; das erste Argument muss ein ndarray sein.

numpy.asin(x: ndarray | float, /) ndarray | float

Berechnet den Arkussinus (inverser Sinus) jedes Elements von x; das Ergebnis ist in Radiant.

numpy.asinh(x: ndarray | float, /) ndarray | float

Berechnet den inversen hyperbolischen Sinus jedes Elements von x.

numpy.atan(x: ndarray | float, /) ndarray | float

Berechnet den Arkustangens (inverser Tangens) jedes Elements von x; das Ergebnis ist in Radiant.

numpy.atanh(x: ndarray | float, /) ndarray | float

Berechnet den inversen hyperbolischen Tangens jedes Elements von x.

numpy.ceil(x: ndarray | float, /) ndarray | float

Berechnet die Aufrundung (kleinste Ganzzahl, die nicht kleiner als der Wert ist) jedes Elements von x.

numpy.cos(x: ndarray | float, /) ndarray | float

Berechnet den Kosinus jedes Elements von x (in Radiant).

numpy.cosh(x: ndarray | float, /) ndarray | float

Berechnet den hyperbolischen Kosinus jedes Elements von x.

numpy.degrees(x: ndarray | float, /) ndarray | float

Konvertiert jedes Element von x von Radiant in Grad.

numpy.exp(x: ndarray | float, /) ndarray | float

Berechnet die Exponentialfunktion e**x jedes Elements von x; kann bei komplexer Eingabe ein komplexes ndarray zurückgeben (wenn komplexe Unterstützung aktiviert ist).

numpy.expm1(x: ndarray | float, /) ndarray | float

Berechnet exp(x) - 1 jedes Elements von x mit verbesserter Genauigkeit nahe null.

numpy.floor(x: ndarray | float, /) ndarray | float

Berechnet die Abrundung (größte Ganzzahl, die nicht größer als der Wert ist) jedes Elements von x.

numpy.log(x: ndarray | float, /) ndarray | float

Berechnet den natürlichen Logarithmus jedes Elements von x.

numpy.log10(x: ndarray | float, /) ndarray | float

Berechnet den Logarithmus zur Basis 10 jedes Elements von x.

numpy.log2(x: ndarray | float, /) ndarray | float

Berechnet den Logarithmus zur Basis 2 jedes Elements von x.

numpy.radians(x: ndarray | float, /) ndarray | float

Konvertiert jedes Element von x von Grad in Radiant.

numpy.sin(x: ndarray | float, /) ndarray | float

Berechnet den Sinus jedes Elements von x (in Radiant).

numpy.sinc(x: ndarray | float, /) ndarray | float

Berechnet die normalisierte sinc-Funktion sin(pi*x) / (pi*x) jedes Elements von x.

numpy.sinh(x: ndarray | float, /) ndarray | float

Berechnet den hyperbolischen Sinus jedes Elements von x.

numpy.sqrt(x: ndarray | float, /, *, dtype: int = float) ndarray | float

Berechnet die Quadratwurzel jedes Elements von x; übergeben Sie dtype=numpy.complex, um komplexe Ergebnisse für negative reelle Eingaben zu erhalten (wenn komplexe Unterstützung aktiviert ist).

numpy.tan(x: ndarray | float, /) ndarray | float

Berechnet den Tangens jedes Elements von x (in Radiant).

numpy.tanh(x: ndarray | float, /) ndarray | float

Berechnet den hyperbolischen Tangens jedes Elements von x.

numpy.vectorize(f: Callable[[float], float], /, *, otypes: int | None = None) Callable

Gibt ein aufrufbares Objekt zurück, das die Python-Funktion f elementweise auf einen Skalar, ein iterierbares Objekt oder ein ndarray anwendet; otypes wählt den Ausgabe-dtype (Standard float).

Konstanten

numpy.e: float

Eulersche Zahl \(e \approx 2.71828\).

numpy.pi: float

\(\pi \approx 3.14159\).

numpy.inf: float

IEEE-754-Gleitkomma-positiv-Unendlich.

numpy.nan: float

IEEE-754-Gleitkomma-„not a number“.

numpy.bool: int

Dtype-Code für boolesche Arrays (gespeichert als uint8).

numpy.uint8: int

Dtype-Code für vorzeichenlose 8-Bit-Ganzzahl-Arrays.

numpy.int8: int

Dtype-Code für vorzeichenbehaftete 8-Bit-Ganzzahl-Arrays.

numpy.uint16: int

Dtype-Code für vorzeichenlose 16-Bit-Ganzzahl-Arrays.

numpy.int16: int

Dtype-Code für vorzeichenbehaftete 16-Bit-Ganzzahl-Arrays.

numpy.float: int

Dtype-Code für 32-Bit-Gleitkomma-Arrays.