„Benutzer:Elimik31/Artikelwerkstatt" – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Versionsgeschichte interaktiv durchsuchen
← Zum vorherigen Versionsunterschied Zum nächsten Versionsunterschied →
Inhalt gelöscht Inhalt hinzugefügt
Zeile 3: Zeile 3:
= [[NumPy#Die_ndarray-Datenstruktur]] =
= [[NumPy#Die_ndarray-Datenstruktur]] =
=== Die ndarray-Datenstruktur ===
=== Die ndarray-Datenstruktur ===
Die Kernfunktionalität von NumPy basiert auf der [[Datenstruktur]] „ndarray" (''n''-dimensionales Array), die auch als „NumPy Array" bezeichnet wird.<ref name="cise">{{cite journal |title=The NumPy array: a structure for efficient numerical computation |author=Stéfan van der Walt, S. Chris Colbert and Gaël Varoquaux |year=2011 |journal=Computing in Science and Engineering |publisher=IEEE |arxiv=1102.1523}}</ref><ref name="Nature"/> Dessen wesentliche Bestandteile sind ein [[Zeiger_(Informatik)|Zeiger]] auf einen zusammenhängenden Speicherbereich zusammen mit Metadaten, welche die darin gespeicherten Daten beschreiben:<ref name="Nature"/>
Die Kernfunktionalität von NumPy basiert auf der [[Datenstruktur]] „ndarray" (''n''-dimensionales Array), die auch als „NumPy Array" bezeichnet wird.<ref name="cise">{{cite journal |title=The NumPy array: a structure for efficient numerical computation |author=Stéfan van der Walt, S. Chris Colbert and Gaël Varoquaux |year=2011 |journal=Computing in Science and Engineering |publisher=IEEE |arxiv=1102.1523}}</ref><ref name="Nature"/> Dessen wesentliche Bestandteile sind ein [[Zeiger_(Informatik)|Zeiger]] auf einen zusammenhängenden (追記) [[ (追記ここまで)Speicherbereich(追記) ]] (追記ここまで) zusammen mit (追記) [[ (追記ここまで)Metadaten(追記) ]] (追記ここまで), welche die darin gespeicherten Daten beschreiben:<ref name="Nature"/>


[[File:The NumPy array data structure and its associated metadata fields.webp|thumb|Die NumPy Array Datenstruktur und assoziierte Metadaten-Felder]]
; Datenyp : Anders als in Pythons eigener ''List''-Datenstruktur (削除) (welche (削除ここまで) (削除) konträr zu ihrem Namen eigentlich durch ein [[dynamisches Array]] verwirklicht ist) sind (削除ここまで) (削除) ndarrays (削除ここまで) homogen [[Typisierung (Informatik)|typisiert]]: Alle Elemente eines Arrays müssen vom selben [[Datentyp]] sein.
; Datenyp : Anders als in Pythons eigener ''List''-Datenstruktur (追記) sind (追記ここまで) (追記) NumPy (追記ここまで) (追記) Arrays (追記ここまで) homogen [[Typisierung (Informatik)|typisiert]]: Alle Elemente eines Arrays müssen vom selben [[Datentyp]] sein.
; Form (engl.&nbsp;''shape'') : Definiert die Dimensionen in jeder Indexausprägung („Achse") des Arrays und die Anzahl der Achsen (bzw.&nbsp;Indizes).
; Form (engl.&nbsp;''shape'') : Definiert die Dimensionen in jeder Indexausprägung („Achse") des Arrays und die Anzahl der Achsen (bzw.&nbsp;Indizes).
; Schrittlängen (engl.&nbsp;''strides''): Die Schrittlängen beschreiben für jede Achse, wie viele [[byte]]s man im (削除) linaren (削除ここまで) (削除) [[ (削除ここまで)Speicher(削除) ]] (削除ここまで) springen muss, wenn ein zu dieser Achse gehöriger Index um 1 erhöht wird(削除) . Für eine Matrix ist (削除ここまで) zum Beispiel (削除) wären (削除ここまで) (削除) das (削除ここまで) (削除) jeweils (削除ここまで) (削除) die (削除ここまで) (削除) Speicherabstände von (削除ここまで) zwei (削除) nebeneinanderliegenden (削除ここまで) (削除) Zeilen (削除ここまで) (削除) und Spalten (削除ここまで).
; Schrittlängen (engl.&nbsp;''strides''): Die Schrittlängen beschreiben für jede Achse, wie viele [[byte]]s man im (追記) linearen (追記ここまで) Speicher springen muss, wenn ein zu dieser Achse gehöriger Index um 1 erhöht wird(追記) , (追記ここまで) zum Beispiel (追記) um (追記ここまで) (追記) zwischen (追記ここまで) (追記) zwei (追記ここまで) (追記) Zeilen (追記ここまで) (追記) oder (追記ここまで) zwei (追記) Spalten (追記ここまで) (追記) zu (追記ここまで) (追記) springen (追記ここまで).

[[File:The NumPy array data structure and its associated metadata fields.webp|thumb|Die NumPy Array Datenstruktur und assoziierte Metadaten-Felder]]


Diese Arrays erlauben es außerdem, von [[Allokation (Informatik)|allozierten]] [[Puffer (Informatik)|Puffern]] anderer Sprachen zu lesen, ohne Daten kopieren zu müssen. Mit [[C (Programmiersprache)|C]]/[[C++]]-, [[Cython]]- oder [[Fortran]]-Erweiterungen des CPython-Interpreters können so auch einfach weitere bestehende Numerikbibliotheken mitverwendet werden. Dieses Verhalten wird beispielsweise von SciPy genutzt, welches [[Wrapper (Software)|Wrapper]] für externe Bibliotheken wie [[Basic Linear Algebra Subprograms|BLAS]] oder [[LAPACK]] bereitstellt. NumPy bietet native Unterstützung für [[Memory Mapping]] der ndarrays.<ref name="cise" />
Diese Arrays erlauben es außerdem, von [[Allokation (Informatik)|allozierten]] [[Puffer (Informatik)|Puffern]] anderer Sprachen zu lesen, ohne Daten kopieren zu müssen. Mit [[C (Programmiersprache)|C]]/[[C++]]-, [[Cython]]- oder [[Fortran]]-Erweiterungen des CPython-Interpreters können so auch einfach weitere bestehende Numerikbibliotheken mitverwendet werden. Dieses Verhalten wird beispielsweise von SciPy genutzt, welches [[Wrapper (Software)|Wrapper]] für externe Bibliotheken wie [[Basic Linear Algebra Subprograms|BLAS]] oder [[LAPACK]] bereitstellt. NumPy bietet native Unterstützung für [[Memory Mapping]] der ndarrays.<ref name="cise" />

Version vom 22. Oktober 2020, 01:02 Uhr

Unterseite zum Entwerfen neuer Artikel oder Abschnitte

Die ndarray-Datenstruktur

Die Kernfunktionalität von NumPy basiert auf der Datenstruktur „ndarray" (n-dimensionales Array), die auch als „NumPy Array" bezeichnet wird.[1] [2] Dessen wesentliche Bestandteile sind ein Zeiger auf einen zusammenhängenden Speicherbereich zusammen mit Metadaten, welche die darin gespeicherten Daten beschreiben:[2]

Die NumPy Array Datenstruktur und assoziierte Metadaten-Felder
Datenyp
Anders als in Pythons eigener List-Datenstruktur sind NumPy Arrays homogen typisiert: Alle Elemente eines Arrays müssen vom selben Datentyp sein.
Form (engl. shape)
Definiert die Dimensionen in jeder Indexausprägung („Achse") des Arrays und die Anzahl der Achsen (bzw. Indizes).
Schrittlängen (engl. strides)
Die Schrittlängen beschreiben für jede Achse, wie viele bytes man im linearen Speicher springen muss, wenn ein zu dieser Achse gehöriger Index um 1 erhöht wird, zum Beispiel um zwischen zwei Zeilen oder zwei Spalten zu springen.

Diese Arrays erlauben es außerdem, von allozierten Puffern anderer Sprachen zu lesen, ohne Daten kopieren zu müssen. Mit C/C++-, Cython- oder Fortran-Erweiterungen des CPython-Interpreters können so auch einfach weitere bestehende Numerikbibliotheken mitverwendet werden. Dieses Verhalten wird beispielsweise von SciPy genutzt, welches Wrapper für externe Bibliotheken wie BLAS oder LAPACK bereitstellt. NumPy bietet native Unterstützung für Memory Mapping der ndarrays.[1]

[2]

  1. a b Stéfan van der Walt, S. Chris Colbert and Gaël Varoquaux: The NumPy array: a structure for efficient numerical computation. In: Computing in Science and Engineering. IEEE, 2011, arxiv:1102.1523. 
  2. a b c Charles R. Harris, K. Jarrod Millman, Stéfan J. van, Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, Julian Taylor, Sebastian Berg, Nathaniel J. Smith, Robert Kern, Matti Picus, Stephan Hoyer, Marten H. van, Matthew Brett, Allan Haldane, Jaime Fernández del, Mark Wiebe, Pearu Peterson, Pierre Gérard-Marchant, Kevin Sheppard, Tyler Reddy, Warren Weckesser, Hameer Abbasi, Christoph Gohlke, Travis E. Oliphant: Array programming with NumPy. In: Nature. 585. Jahrgang, Nr. 7825, 16. September 2020, S. 357–362, doi:10.1038/s41586-020-2649-2 (nature.com). 
Abgerufen von „https://de.wikipedia.org/w/index.php?title=Benutzer:Elimik31/Artikelwerkstatt&oldid=204767817"