Numpy – Array vs asarray

Was ist der Unterschied zwischen Numpys array() und asarray() Funktionen? Wann solltest du einen anderen als den anderen benutzen? Sie scheinen eine identische Ausgabe für alle Eingänge zu erzeugen, an die ich denken kann.

3 Solutions collect form web for “Numpy – Array vs asarray”

Die Definition von asarray ist:

 def asarray(a, dtype=None, order=None): return array(a, dtype, copy=False, order=order) 

So ist es wie array , außer es hat weniger Optionen und copy = False . array hat standardmäßig copy = True .

Ich denke, der Hauptunterschied ist, dass array (standardmäßig) eine Kopie des Objekts zu machen, während asarray wird nicht, wenn nötig.

Der Unterschied kann durch dieses Beispiel demonstriert werden:

  1. Eine Matrix erzeugen

     >>> A = numpy.matrix(np.ones((3,3))) >>> A matrix([[ 1., 1., 1.], [ 1., 1., 1.], [ 1., 1., 1.]]) 
  2. Verwenden Sie numpy.array , um A zu ändern. Funktioniert nicht, weil Sie eine Kopie ändern

     >>> numpy.array(A)[2]=2 >>> A matrix([[ 1., 1., 1.], [ 1., 1., 1.], [ 1., 1., 1.]]) 
  3. Verwenden Sie numpy.asarray , um A zu ändern. Es hat funktioniert, weil du A selbst modifizierst

     >>> numpy.asarray(A)[2]=2 >>> A matrix([[ 1., 1., 1.], [ 1., 1., 1.], [ 2., 2., 2.]]) 

Hoffe das hilft!

Die Unterschiede werden in der Dokumentation von array und asarray ganz deutlich asarray . Die Unterschiede liegen in der Argumentliste und damit die Aktion der Funktion abhängig von diesen Parametern.

Die Funktionsdefinitionen sind:

 numpy.array(object, dtype=None, copy=True, order=None, subok=False, ndmin=0) 

und

 numpy.asarray(a, dtype=None, order=None) 

Die folgenden Argumente sind diejenigen, die an array und nicht asarray wie in der Dokumentation erwähnt:

Copy: bool, optional Wenn true (Standard), dann wird das Objekt kopiert . Andernfalls wird eine Kopie nur gemacht, wenn __array__ eine Kopie zurückgibt, wenn obj eine verschachtelte Sequenz ist oder wenn eine Kopie benötigt wird, um irgendwelche der anderen Anforderungen (dtype, order, etc.) zu erfüllen.

Subok: bool, optional Wenn True, dann werden Unterklassen übergeben , sonst wird das zurückgegebene Array gezwungen, ein Basisklassen-Array zu sein (Standard).

Ndmin: int, optional Gibt die minimale Anzahl von Dimensionen an, die das resultierende Array haben soll. Ones wird auf die Form vorbereitet, um diese Anforderung zu erfüllen.

  • Wie man elementweise Boolesche Operationen auf numpy Arrays durchführt
  • Farbskala - nahe, aber nicht nah genug
  • Konvertieren itertools array in numpy array
  • Wie macht man Matplotlib / Pandas Balkendiagramm aussehen wie hist Chart?
  • Pyspark: Konvertieren Sie spärliche lokale Matrix in eine RDD
  • Pandas (Python) Lesen und Arbeiten an Java BigInteger / große Zahlen
  • Kopiere die flache Liste der oberen Dreieckseinträge in die volle Matrix?
  • Numpy: Stapeln maskierte Arrays und Berechnung von min / max
  • Numpy binary matrix - erhalten Zeilen und Spalten von True-Elementen
  • Minima Berechnung für 2d Array in scipy
  • Was ist eine schnelle (non-loop) Weise, ein dict an ein ndarray anzuwenden (dh verwenden Sie Elemente als Schlüssel und ersetzen Sie mit Werten)
  • Python ist die beste Programmiersprache der Welt.