Die Geschichte eines Rubinisten, der mit Python :: Dict-Daten mit Pycall kämpft

Die Geschichte eines Rubinisten, der mit Python :: Dict-Daten mit Pycall kämpft

PyCall Ruby-Version Tipps hat einen nahezu perfekten Korrespondenzbericht. Zusätzlich numpy-spezifische Notation

{.example}


#Zugriff auf die letzte Zeile m mit Python[-1,:]Wo man schreibt

Und so weiter hat Rubyist sogar eine leicht verständliche Erklärung für Numpy.

Es sieht so aus, als ob es einfach geht. .. ..

Es tut mir leid, wenn es sich um eine komplizierte Datenstruktur handelt

Beim Umgang mit komplexen Python-Datenstrukturen Es ist sehr schwierig. Die Ursache ist, dass ich den Schlüssel des Diktats nicht kenne. Es ist gut, wenn Sie einfache Zeichen nehmen, aber es scheint nicht gut mit leicht komplizierten Zeichen zu funktionieren.

Vasprun :: tdos oder in pymatgen wie folgt Vasprun :: compolete \ _dos etc. können genommen werden.

Jedoch,

Wenn p spd \ _dos = dosrun.complete \ _dos.get \ _spd \ _dos ()

{<OrbitalType.s: 0>: <pymatgen.electronic_structure.dos.Dos object at 0x102dd4710>, <OrbitalType.p: 1>: <pymatgen.electronic_structure.dos.Dos object at 0x102dc2dd8>, <OrbitalType.d: 2>: <pymatgen.electronic_structure.dos.Dos object at 0x102d962b0>}

Wird ausgegeben. Ich denke, das kann mit spd \ _dos ('OrbitalType.s') gemacht werden. Nicht gut. Deshalb,

p s_d = spd_dos.to_a[0][1].densities

Wie

{.example}


array([  0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
...
      ])

Machen Sie es python :: array und dann

s_list = PyCall::List.(s_d.to_a[0][1]).to_a

Da Hash auf Array gesetzt ist, wird vals herausgenommen und in eine Datenstruktur konvertiert, die Ruby mit \ _a interpretieren kann.

Sobald Sie sich daran gewöhnt haben, werden Sie keine großen Probleme mehr haben, da der gleiche Code wiederholt wird. Vielleicht werde ich es mit der Zeit vergessen. Ich möchte, dass Sie es in lib integrieren, aber es scheint, dass nur Zeichen Diktat direkt lesen. .. .. Möchten Sie einen Code schreiben und versuchen, req zu ziehen?

Wenn Sie den Namen der Dichte und Energie nicht kennen, können Sie nichts dagegen tun. Dies kann durch Lesen des Quellcodes von Pymatgen gefunden werden. Anscheinend müssen Sie dies wiederholen, um Pycall zu verwenden.

{.ruby}


require 'pycall/import'
include PyCall::Import

pyimport :sys
pyimport 'numpy', as: :np
pyfrom 'pymatgen.io.vasp.outputs', import: :Vasprun

# dos
dosrun = Vasprun.("../dos_calc_fine/vasprun.xml")
e_object = (dosrun.tdos.energies - dosrun.efermi)
energy = PyCall::List.(e_object).to_a
spd_dos = dosrun.complete_dos.get_spd_dos()
spd = PyCall::Dict.(spd_dos)
s_d = spd.to_a[0][1].densities
s_list = PyCall::List.(s_d.to_a[0][1]).to_a
p_d = spd.to_a[1][1].densities
p_list = PyCall::List.(p_d.to_a[0][1]).to_a
d_d = spd.to_a[2][1].densities
d_list = PyCall::List.(d_d.to_a[0][1]).to_a
tdos = dosrun.tdos.densities
t_list = PyCall::List.(tdos.to_a[0][1]).to_a

require 'numo/gnuplot'
Numo.gnuplot do
  set yrange: '[-10:10]'
  plot [s_list, energy, w: :l, title: 's'],
  [p_list, energy, w: :l, title: 'p'],
  [d_list, energy, w: :l, title: 'd'],
  [t_list, energy, w: :l, title: 'total']
end

Recommended Posts

Die Geschichte eines Rubinisten, der mit Python :: Dict-Daten mit Pycall kämpft
Die Geschichte des Lesens von HSPICE-Daten in Python
Versuchen Sie, COVID-19 Tokyo-Daten mit Python zu kratzen
Die Geschichte von Python und die Geschichte von NaN
[Homologie] Zählen Sie mit Python die Anzahl der Löcher in den Daten
Der 14. März ist der Tag des Umfangsverhältnisses. Die Geschichte der Berechnung des Umfangsverhältnisses mit Python
Die Geschichte, einen Standardtreiber für db mit Python zu erstellen.
Die Geschichte, ein Modul zu erstellen, das E-Mails mit Python überspringt
Überprüfen Sie die Existenz der Datei mit Python
Die Geschichte der Manipulation globaler Python-Variablen
Empfehlung von Altair! Datenvisualisierung mit Python
Die Geschichte der Verarbeitung A von Blackjack (Python)
Die Geschichte, wie man mit Python einen 100-Yen-Frühstücks-Bot für die Universität macht
Versuchen Sie, die Höhendaten des National Land Research Institute mit Python abzubilden
Die Geschichte des tiefen Lernens mit TPU
Bereiten Sie die Ausführungsumgebung von Python3 mit Docker vor
[Hinweis] Exportieren Sie das HTML der Site mit Python.
Berechnen Sie die Gesamtzahl der Kombinationen mit Python
Überprüfen Sie das Datum der Flaggenpflicht mit Python
Eine Geschichte über den Umgang mit Binärdaten in Python
Bildverarbeitung? Die Geschichte, Python für zu starten
Konvertieren Sie den Zeichencode der Datei mit Python3
[Python] Bestimmen Sie den Typ der Iris mit SVM
Richten Sie die Anzahl der Stichproben zwischen Datenklassen für maschinelles Lernen mit Python aus
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
Datenanalyse mit Python 2
der Zen von Python
Die Geschichte von sys.path.append ()
Datenanalyse mit Python
Extrahieren Sie die Tabelle der Bilddateien mit OneDrive & Python
Die Geschichte von Python ohne Inkrement- und Dekrementoperatoren.
Die Geschichte des Stoppens des Produktionsdienstes mit dem Befehl hostname
Lerne Nim mit Python (ab Anfang des Jahres).
Die Geschichte des Teilens der Pyenv-Umgebung mit mehreren Benutzern
Zerstören Sie den Zwischenausdruck der Sweep-Methode mit Python
Visualisieren Sie den Bereich der internen und externen Einfügungen mit Python
Die Geschichte von FileNotFound im Python open () -Modus = 'w'
Berechnen Sie den Regressionskoeffizienten der einfachen Regressionsanalyse mit Python
Mit Python psycopg2 erhalten Sie Ergebnisse im Diktatformat
Fordern Sie die Hauptkomponentenanalyse von Textdaten mit Python heraus
Den Inhalt der Daten in Python nicht kennen
Verwenden wir die offenen Daten von "Mamebus" in Python
Zusammenfassung des grundlegenden Ablaufs des maschinellen Lernens mit Python
Verstehen Sie den Status des Datenverlusts - Python vs. R.
Holen Sie sich mit Python den Betriebsstatus von JR West
[Grundlagen der Datenwissenschaft] Sammeln von Daten aus RSS mit Python
Die Geschichte der automatischen Sprachkonvertierung von TypeScript / JavaScript / Python
[Python Data Frame] Wenn der Wert leer ist, füllen Sie ihn mit dem Wert einer anderen Spalte.
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Mit Python erstellte Beispieldaten
Ich habe versucht, das Bild mit Python + OpenCV "gammakorrektur" zu machen
Die Geschichte des Baus von Zabbix 4.4
Auf dem Weg zum Ruhestand von Python2
Ich habe versucht, die Python-Bibliothek von Ruby mit PyCall zu verwenden
Visualisieren Sie die Ergebnisse von Entscheidungsbäumen, die mit Python scikit-learn erstellt wurden
Sakura Die Geschichte, wie die Python-Flasche im Internet funktioniert hat