numpy

NumPy ist eine Erweiterung der Python-Programmiersprache für den naturwissenschaftlichen und numerischen Bereich.
4
Antworten

Mehrere Ebenen der booleschen Indexmaske in NumPy verwenden

Ich habe den folgenden Code, der zuerst Elemente eines NumPy-Arrays mit einer logischen Indexmaske auswählt: %Vor% Ich möchte eine zweite boolesche Maske gegen diese verwenden, um Objekte mit auszuwählen: %Vor% Dies ist nicht das gleiche...
24.08.2011, 17:12
3
Antworten

Ändern Sie das neuronale Netz, um ein einzelnes Beispiel zu klassifizieren

Dies ist meine benutzerdefinierte Erweiterung eines neuronalen Netzwerks von Andrew NG aus dem Deep Learning-Kurs, wo ich statt 0 oder 1 für die binäre Klassifizierung zu produzieren versuche um mehrere Beispiele zu klassifizieren. Sowohl die...
15.11.2017, 13:04
7
Antworten

Die Operation auf numpy Arrays enthält Zeilen mit unterschiedlicher Größe

Ich habe zwei Listen, die so aussehen: %Vor% , die ich Element für Element für eine Ausgabe wie folgt abziehen möchte: %Vor% Um dies zu tun, konvertiere ich jedes von a und b in Arrays und subtrahiere sie, die ich benutze: %Vor%...
11.08.2016, 10:49
4
Antworten

Vektorisierung numpy bilcount

Ich habe ein 2d numpy Array., A Ich möchte np.bincount() auf jede Spalte der Matrix A anwenden, um ein weiteres 2D-Array B zu erzeugen, das sich aus den Einzelbits jeder Spalte des Originals zusammensetzt Matrix A . Mein Problem...
14.11.2016, 15:01
3
Antworten

___ answer15739248 ___

MRDIVIDE oder der Operator %code% löst tatsächlich das lineare System %code% als im Gegensatz zu MLDIVIDE oder dem Operator %code% , der das System %code% löst.

Um ein System %code% mit einer unsymmetrischen, nicht invertierbaren Matrix %code% zu lösen, können Sie sich entweder auf %code% verlassen, was über die Faktorisierung von %code% mit Gauss Elimination oder %code% geschieht. Dies geschieht über die Singular Value Decomposition und das Zero-Sing der Singulärwerte unterhalb einer (Default-) Toleranzgrenze.

Hier ist der Unterschied (für den Fall %code% ): Was ist der Unterschied zwischen PINV und MLDIVIDE, wenn ich A * x = b löse?

  

Wenn das System überbestimmt ist, liefern beide Algorithmen die   gleiche Antwort. Wenn das System unterbestimmt ist, gibt PINV die   Lösung x, die die Mindestnorm hat (min NORM (x)). MLDIVIDE wird   Wählen Sie die Lösung mit der geringsten Anzahl von Nicht-Null-Elementen.

In Ihrem Beispiel:

%Vor%

das System ist unterbestimmt, und die zwei verschiedenen Lösungen werden sein:

%Vor%

In beiden Fällen ist der Approximationsfehler von %code% nicht vernachlässigbar (nicht exakte Lösung) und dasselbe, d. h. %code% und %code% werden das gleiche Ergebnis liefern.

Was macht MATLAB?

In diesem Beitrag in scicomp.stackexchange.com . Ich gehe davon aus, dass ähnliche Optionen für den Operator %code% gelten.

Für Ihr Beispiel wird MATLAB höchstwahrscheinlich eine Gauß-Eliminierung durchführen, die die einfachste Lösung unter einer Unendlichkeit ergibt (da kommt die 5 her).

Was macht Python?

Python, in %code% verwendet pseudoinverse / SVD, wie oben gezeigt (deshalb erhalten Sie einen Vektor von 0.2). Im Endeffekt erhalten Sie mit dem folgenden Befehl das gleiche Ergebnis wie in %code% von MATLAB:

%Vor%     
___ qstntxt ___

Ich habe diese Zeile des MATLAB-Codes:

%Vor%

Ich verwende diese Eingaben:

%Vor%

Dies ist das Ergebnis (eine 1x25-Matrix):

%Vor%

Was macht MATLAB? Ich versuche, dieses Verhalten in Python zu kopieren, und die %code% -Dokumentation in MATLAB war nicht hilfreich. Woher kommt die 5 und warum sind die restlichen Werte 0?

Ich habe dies mit anderen Eingaben versucht und ähnliche Ergebnisse erhalten, normalerweise nur ein anderes erstes Element und Nullen, die den Rest der Matrix füllen. In Python, wenn ich %code% verwende, sind alle Werte in der ersten zurückgegebenen Matrix (d. H. Nicht die Einzahl) 0,2. Ich habe schon in Python die richtige Aufteilung versucht und es gibt etwas komplett mit den falschen Dimensionen aus.

Ich verstehe, was eine Approximation kleinster Quadrate ist, ich muss nur wissen, was %code% macht.

Siehe auch:

___ tag123python ___ Python ist eine dynamische und stark typisierte Programmiersprache, die die Usability betont. Zwei ähnliche, aber größtenteils inkompatible Versionen von Python sind weit verbreitet (2 und 3). Wenn Sie eine versionsspezifische Python-Frage haben, sollten Sie die Tags [python-2.7] oder [python-3.x] zusätzlich zum Tag [python] verwenden. Wenn Sie eine Python-Variante wie jython, pypy, iron-python usw. verwenden, kennzeichnen Sie diese bitte entsprechend. ___ tag123matlab ___ MATLAB ist eine von MathWorks entwickelte Hochsprachen- und interaktive Programmierumgebung für numerische Berechnungen und Visualisierung. Fragen sollten entweder mit [tag: matlab] oder [tag: oktave] versehen werden, aber nicht mit beiden, es sei denn, die Frage bezieht sich explizit auf beide Pakete. Wenn Sie dieses Tag verwenden, erwähnen Sie bitte die MATLAB-Version, mit der Sie arbeiten (z. B. R2017a). ___ tag123numpy ___ NumPy ist eine Erweiterung der Python-Programmiersprache für den naturwissenschaftlichen und numerischen Bereich. ___ ___ qstnhdr mrdivide Funktion in MATLAB: was es tut, und wie kann ich es in Python? ___ answer1007532 ___

Per dieses handliche "Spickzettel" von numpy für Matlab Benutzer %code% - %code% numpy.linalg.linalg , eine leichtgewichtige Version des vollen %code% .

    
___ answer1007469 ___

a / b findet die Lösung des kleinsten Quadrats für das lineare Gleichungssystem bx = a

Wenn b invertierbar ist, ist dies a * inv (b), aber wenn es nicht ist, ist es das x, das norm (bx-a)

minimiert

Sie können mehr über die kleinsten Quadrate auf wikipedia .

nach matlab documentation , mrdivide liefert höchstens k Werte ungleich null, wobei k der berechnete Rang von b ist. Meine Vermutung ist, dass Matlab in Ihrem Fall das Problem der kleinsten Quadrate löst, das durch Ersetzen von b durch b (: 1) (das den gleichen Rang hat) gegeben ist. In diesem Fall wird die moore-penrose inverse %code% definiert und gibt die gleiche Antwort

    
___ tag123linearalgebra ___ Lineare Algebra ist ein Kernbereich der Mathematik, der Vektorräume und lineare Abbildungen zwischen diesen Räumen untersucht. Hauptthemen sind: Matrizen, Vektoren, simultane Systeme linearer Gleichungen, diagonale Form, Eigenwerte, Eigenvektoren, Projektionen, Punkte, Linien, Ebenen, Hyperebenen, Rotationen und Reflexionen. ___

Ich habe diese Zeile des MATLAB-Codes: %Vor% Ich verwende diese Eingaben: %Vor% Dies ist das Ergebnis (eine 1x25-Matrix): %Vor% Was macht MATLAB? Ich versuche, dieses Verhalten in Python zu kopieren, und die mrdivide -Dokumentatio...
17.06.2009, 14:36
1
Antwort

Schnellster Weg zur Vereinigung von Listen - Python

Es gibt einen C ++ Vergleich, um die Vereinigung von Listen aus Listen von Listen zu erhalten: Der schnellste Weg zur Vereinigung von Sets Und es gibt noch einige andere Python-bezogene Fragen, aber keine schlägt den schnellsten Weg vor, di...
08.03.2016, 11:24
4
Antworten

Beschleunigung der Entfernung zwischen allen möglichen Paaren in einem Array

Ich habe ein Array von x, y, z-Koordinaten von mehreren (~ 10 ^ 10) Punkten (nur 5 hier gezeigt) %Vor% Ich möchte ein neues Array mit nur den Punkten erstellen, die von allen anderen Punkten in der Liste mindestens um eine Distanz d entfe...
26.02.2016, 19:13
1
Antwort

Unerwartetes Verhalten in numpy beim Teilen von Arrays

In Numpy 1.8.2 (mit Python 2.7.6) scheint also ein Problem bei der Array-Aufteilung zu bestehen. Bei der In-Place-Division eines ausreichend großen Arrays (mindestens 8192 Elemente, mehr als eine Dimension, Datentyp ist irrelevant) mit einem Tei...
12.11.2015, 15:22
1
Antwort

python numpy: Wie konstruiere ich ein großes diagonales Array (Matrix) aus zwei kleinen Arrays

%Vor% Ich möchte C direkt aus A und B machen, gibt es irgendwelche einfachen Möglichkeiten, ein diagonales Array zu erstellen C ? Danke.     
10.02.2017, 08:20
1
Antwort

Unterschied zwischen np.inf und float ('Inf')

Gibt es einen Unterschied zwischen NumPy np.inf und float('Inf') ? float('Inf') == np.inf gibt True zurück, also scheinen sie austauschbar zu sein, also habe ich mich gefragt, warum NumPy seine eigene "inf" -Konstante definiert hat,...
18.02.2017, 13:07