Ich habe den Dollar-Yen mit der k-medoids-Methode in Python geclustert und die richtige Antwortrate gefunden.

Einführung

Beginnend mit "Die Prognose von Aktienkursen und Wechselkursen scheint interessant zu sein" und "Lesen wir einige Artikel", wenn Sie einige Artikel und akademische Materialien herunterladen und lesen, an denen Sie persönlich interessiert sein könnten Ich war beeindruckt, ein Material zu finden, das äußerst interessant erscheint. Wenn es dort endet, Dame. Ich hatte den Aktienkurs und die Umtauschdaten bis jetzt nicht berührt, weil ich versucht hatte, sie auf meine eigene Weise zu implementieren, nicht nur zu lesen, sondern die Daten zu erhalten und zu einem Formular zu machen.

Ziel: Für diejenigen, die die Grundlagen wie die vier Regeln der Programmierung, if-Anweisung und for-Anweisung verstehen und an der Analyse von Aktienkursen und Wechselkursen interessiert sind. Es ist so geschrieben, dass Erst- und Zweitklässler, die mit dem Programmieren an der Universität begonnen haben, es lesen können. Es ist nicht für Leute, die fortgeschrittenes Wissen haben und verschiedene Vorhersagen und Analysen machen können (ich kann nicht zuerst schreiben ... lol))

Überblick: Der Fluss der Clusterbildung über Dollar-Yen unter Verwendung der k-Medoids-Methode und das Finden der richtigen Antwortrate wird beschrieben.

1 Daten abrufen

Dieses Mal haben wir tägliche Daten von Dollar-Yen für die letzten 15 Jahre und stündliche Daten für die letzten 5 Jahre erfasst. Ich wusste nicht einmal, dass ich die Daten bekommen könnte, also nahm ich mir hier viel Zeit, aber ich entdeckte zufällig die Existenz von "oanda api" und schaffte es, sie zu erhalten, indem ich mich auf Qiita bezog, das zusammenfasst, wie man sie verwendet. Die erfassten täglichen Daten sehen folgendermaßen aus (siehe Abbildung unten). スクリーンショット 2020-03-03 18.32.24.png Das Excel fühlt sich intimer an.

Daten von der OANDA-API abrufen

Ich verweise auf Wie man eine große Menge vergangener Austauschdaten von der FX-API erhält (für maschinelles Lernen) Ich habe die Daten bekommen. Die Verwendung der API hat viel Zeit in Anspruch genommen. Hier sind die Schritte. Zunächst einmal ist oanda api eine API, die vom FX-Anbieter oanda bereitgestellt wird. Sie benötigen eine ID und einen Schlüssel, um es zu verwenden, und Sie müssen ein Demo-Konto für oanda eröffnen. "Oandas Homepage" https://www.oanda.jp Wählen Sie auf der Homepage "Neues Konto eröffnen" -> "Neues Demo-Konto eröffnen". Geben Sie verschiedene Informationen in das kostenlose Formular zur Eröffnung des Demokontos ein und geben Sie eine Demo-Konto-ID aus. Danach wird eine E-Mail mit der ID und dem Passwort an Sie gesendet. Melden Sie sich daher beim Demo-Konto an. In den Kontoinformationen im mittleren Teil der folgenden Abbildung befindet sich "Konto-ID". Geben Sie unter "API-Zugriff verwalten" unten rechts ein und erhalten Sie ein persönliches Zugriffstoken. Wenn Sie die AccountID und den AccessKey (PersonalAccessToken) erhalten können, können Sie die API verwenden.

Installieren Sie ein Paket namens oandapy

pip install git+https://github.com/oanda/oandapy.git

Erhalten Sie Austauschinformationen. Laden Sie die gewünschte Bibliothek und versuchen Sie, den aktuellen Dollar-Yen-Kurs zu ermitteln.


import pandas as pd
import oandapy
import configparser
import datetime
from datetime import datetime, timedelta
import pytz

account_id = "xxxxx"
access_key = "xxxxx"

#oanda API-Aufruf
oanda = oanda.API(access_token = access_key, environment = "practice")

#Holen Sie sich den Dollar-Yen-Kurs für die aktuelle Zeit
res = oanda.get_prices(instruments = "USD_JPY")

Ausgabeergebnis ↓ ↓ ↓ {'prices': [{'ask': 107.321, 'bid': 107.317, 'instrument': 'USD_JPY', 'time': '2020-03-05T06:12:23.365940Z'}]} Aufgrund des Einflusses des Koronavirus ist es von 112 Yen auf 107 Yen gesunken. Gehen Sie von nun an zu So erhalten Sie eine große Menge früherer Austauschdaten von der FX-API (für maschinelles Lernen). Es ist sehr leicht verständlich geschrieben. Lesen Sie daher diesen Artikel, um Daten für den gewünschten Zeitraum zu erhalten.

2 Analysemethode

Führen Sie die Analyse gemäß den folgenden Schritten durch. Schritt 1: Bestimmen Sie den Prognosezeitraum, den Datenerfassungszeitraum und den Überprüfungszeitraum Schritt 2: Cluster der Datenerfassungsperiode Schritt 3: Handel des Überprüfungszeitraums im Prognosezeitraum Schritt 4: Fügen Sie die Daten des von Ihnen durchgeführten Transaktionszeitraums zum Datenerfassungszeitraum hinzu Schritt 5: Wenn der Überprüfungszeitraum nicht abgelaufen ist, kehren Sie zu Schritt 2 zurück und enden, wenn der Überprüfungszeitraum abgelaufen ist.

<img width = "600"src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/512508/db4b3cf1-8577-914c-fc19-7580deeab002.png ">

Jede Periode hat die folgende Bedeutung. Datenerfassungszeitraum: Zeitraum für die Bezugnahme auf vergangene Preisbewegungen (im Allgemeinen Trainingsdaten) Überprüfungszeitraum: Zeitraum für die Bewertung der korrekten Antwortrate (im Allgemeinen Testdaten) Prognosezeitraum: Was wird nächsten Monat, nächste Woche, morgen passieren? Vorhersagezeitraum (Wir haben drei Monate, Wochen und Tage vorbereitet)

Der Prognosezeitraum ist beispielsweise monatlich, der Datenerfassungszeitraum beträgt 156 Monate von 2003 bis Ende 2015 und der Überprüfungszeitraum beträgt 36 Monate von 2016 bis Ende 2018. (Wenn Sie ihn verstanden haben, ändern Sie einfach den Zeitraum.) In der Abbildung sieht es so aus. (Abbildung unten)

Wenden Sie die k-medoid-Methode auf den Datenerfassungszeitraum in Schritt 2 an. Das Bild lautet: "Wenn der Datenerfassungszeitraum in mehrere Muster unterteilt ist, welches Muster wird der erwartete Zeitraum sein?" Zuerst klassifizieren wir den Datenerfassungszeitraum in mehrere Muster. Da die Preisbewegungen des Charts grundsätzlich in drei Muster von Steigen, Nivellieren und Fallen unterteilt sind, klassifizieren wir sie hier in drei Klassen.

Hier finden Sie eine Zusammenfassung der Preisbewegungen für 156 Monate (siehe Abbildung unten).

Die Anzahl der Serien beträgt 156, und der Grund, warum die Anzahl der Elemente variiert, besteht darin, dass es Unterschiede gibt, z. B. Monate, die in 30 Tagen enden, Monate, die in 31 Tagen enden, und Februar. Außerdem werden an Feiertagen und Neujahr keine Devisen gehandelt, sodass die Anzahl der Elemente in jeder Serie zwischen 18 und 22 liegt.

Um die Eigenschaften jeder Reihe zu verstehen, teilen Sie jedes Element durch den Wert zu Beginn jeder Periode (Element [0]). Dann sieht es so aus (siehe Abbildung unten).

DTW-Entfernung

Als nächstes werde ich diese verwirrten Serien in drei klassifizieren. Aber die Frage hier ist, wie man klassifiziert? Ist es möglich, jede Form in Zeitreihen quantitativ zu bewerten? Ich dachte, aber es kann mit einer Messmethode namens DTW-Entfernung gelöst werden. Dies ist ein Wert, der zurückgegeben wird, wenn Sie die beiden zu vergleichenden Zeitreihen in die DTW-Funktion einfügen. Mit diesem Wert können Sie die einzelnen Zeitreihen quantitativ auswerten.

Zum Beispiel, wenn es eine Zeitreihe von A bis E gibt, wie unten gezeigt

Wenn Sie die Zeitreihen von A und B in die DTW-Funktion einfügen, ist dies 297. スクリーンショット 2020-03-03 20.28.25.png Die folgende Tabelle zeigt die DTW-Funktion für alle Kombinationen von A bis E. スクリーンショット 2020-03-03 20.29.25.png Der DTW-Abstand der nächsten Zeitreihen A und B beträgt 297, und der DTW-Abstand der am weitesten entfernten Zeitreihen D und E beträgt 2900. Sie können die als nah oder fern erkannten Informationen quantitativ auswerten, wenn Sie sich das Diagramm ansehen. ..

DTW-Algorithmus, Code

Der Algorithmus sieht folgendermaßen aus: Schritt 1: Erstellen Sie eine Kostenmatrix der Länge M x Länge N für die Differenz zwischen den Absolutwerten jedes Punkts. Schritt 2: Erstellen Sie eine M × N Dist-Matrix, $ Dist {(1, 1)} = Cost {(1,1)} $. Initialisieren Sie, indem Sie andere Elemente durch $ ∞ $ ersetzen. Schritt 3: Fügen Sie in der 1. Zeile und 1. Spalte der Dist-Matrix den Wert des vorherigen Werts und den Wert der Kostenmatrix an derselben Position hinzu. Schritt 4: Erstellen Sie eine Dist-Matrix gemäß der folgenden Formel.

Dist_{(i, j)} = Cost{(i, j)} + min(Dist{(i, j-1)}, Dist{(i-1, j)}, Dist{(i-1, j-1)})

Schritt 5: Sei $ Dist {(M, N)} $ der DTW-Abstand. Achten Sie zunächst auf die Zeitreihen von A und B und was passiert beim Messen der DTW-Entfernung? Wenn Sie eine Kostenmatrix erstellen, die die Differenz zwischen den Absolutwerten jedes Punkts aus Schritt 1 ermittelt, die Dist-Matrix aus Schritt 2 und Schritt 3 initialisieren und eine Dist-Matrix gemäß Schritt 4 erstellen, lautet das Ergebnis wie folgt. Ab Schritt 5 wird der DTW-Abstand zwischen den Zeitreihen A und B mit 297 berechnet. Das Folgende ist eine Funktion davon.

#dtw Funktion zum Ermitteln der Entfernung
def dtw(x, y):
    #Erstellen Sie eine Distanzmatrix.
    X, Y = np.meshgrid(x, y)
    dist = abs(X-Y)  #Euklidische Entfernung
    #print(dist)

    #Initialisierung der Matrix, die dtw berechnet
    #Auf dem dtw-Algorithmus, dtw[-1][-1]Um zuerst darauf zu verweisen,Linie,Ursprüngliche Zeitreihenlänge für beide Spalten+Sichern Sie eine dtw-Matrix von 1
    dtw = np.full((len(y) + 1, len(x) + 1), np.inf)
    dtw[0, 0] = 0

    for i in range(1, len(y) + 1):
        for j in range(1, len(x) + 1):
            dtw[i, j] = min(
                dtw[i - 1, j],
                dtw[i, j - 1],
                dtw[i - 1, j - 1]) + dist[i - 1, j - 1]
    return dtw[-1, -1]

Verwenden Sie die Funktion dtw, um eine dtw-Matrix zu erstellen, in der die dtw-Abstandswerte zwischen den einzelnen Zeitreihen gespeichert sind (die Tabelle, die alle obigen Kombinationen A bis E enthält).

def make_dtw_matrix(data):
    dtw_matrix = [[0 for i in range(len(data))] for j in range(len(data))]
    for i in range(0, len(data)):
        for j in range(0, len(data)):
            dtw_matrix[i][j] = dtw(data[i], data[j])
    return dtw_matrix

k-Medoide-Methode

Als nächstes werden wir schließlich das Clustering mit der k-Medoids-Methode durchführen. Die k-Medoids-Methode ist eine teilungsoptimierte Clustering-Methode ähnlich der k-means-Methode. Die Punkte, die die Summe der Abstände zu allen Punkten minimieren, werden als Basispunkte (Medoide) verwendet. Daher hat die k-Mittelwert-Methode den Nachteil, dass sie leicht von Abweichungswerten von der Berechnungsmethode des Schwerpunkts beeinflusst wird, aber k- Die Medoids-Methode hat den Vorteil, dass die Auswirkung von Ausreißern verringert wird, da eine der nicht klassifizierten Daten den Medoids zugeordnet ist (ich habe auf die k-means-Methode verwiesen, aber diesen Artikel, ohne es zu wissen. Kann gelesen werden, also ist es okay.)

Der Abstand zwischen Zeitreihen wird durch den DTW-Abstand quantifiziert, und die quantifizierte dtw-Matrix wird unter Verwendung der k-Medoiden-Methode klassifiziert.

In drei Klassen sieht es so aus (Abbildung unten). image.pngimage.pngimage.png Irgendwie ist es in eine flache Klasse (53er Serie), eine fallende Klasse (66er Serie) und eine aufsteigende Klasse (37er Serie) unterteilt.

k-medoids Methodenalgorithmus, Code

Der Algorithmus wird im nächsten Schritt fortgesetzt. Schritt 1: Wählen Sie zufällig Punkte für k Klassen aus. (Medoid) Schritt 2: Ordnen Sie jeden Punkt der nächsten Medoidklasse zu. Schritt 3: Machen Sie den Punkt, an dem der Gesamtabstand zu allen anderen Punkten in jeder Klasse als neues Medoid minimal ist. Schritt 4: Wenn es keine Änderung gibt, endet es und wenn es eine Änderung gibt, kehrt es zu Schritt 2 zurück. Der Code ist unten angegeben.

Was passiert beispielsweise, wenn wir die Zeitreihen A bis E in zwei Klassen einteilen? Ich werde das machen. Die dtw-Matrix ist eine symmetrische Matrix mit 5 × 5 Diagonalkomponenten 0 in der obigen Tabelle.

Wählen Sie zunächst in Schritt 1 zwei zufällige Serien aus. Wählen Sie hier die Serien A und B als Medoid aus. Entspricht initialize_medoids im Code. Ein Medoid ist dasjenige in der Klasse, das den Gesamtabstand zu allen Punkten in der Klasse minimiert. Diesmal haben wir also zwei Medoide. Die Medoide, die die Medoide speichern, sind Medoide = \ [A, B ](programmatisch Medoide = [0, 1]).

Schritt 2 Ordnen Sie jede Serie (A bis E) der nächsten Medoidklasse zu. Entspricht "assign_to_nearest" im Code. Hier wird die zugewiesene Klasse als Label bezeichnet, und da sie in zwei Klassen klassifiziert ist, bereiten wir zwei Labels vor, "0" und "1". Da wir noch nichts getan haben, jedes der aktuellen Die der Serie zugewiesene Bezeichnung lautet label = \ [?,?,?,?,? ](Bezeichnung = [∞, ∞, ∞, ∞, ∞] im Programm).

Mit Schwerpunkt auf der dtw-Matrix sind die für Medoid ausgewählten Reihen A und B. Das Medoid mit Label 0 ist jetzt Serie A, und das Medoid mit Label 1 ist jetzt Serie B. Wenn Sie sich ansehen, welchem Medoid jede Serie näher kommt, sehen Sie den roten Kreis unten.

Daher ist das Label, dem das Medoid zugeordnet ist, das jeder Serie am nächsten liegt, label = \ [0, 1, 0, 0, 1 ].

Schritt 3: Der Punkt, an dem der Gesamtabstand zu allen anderen Punkten in jeder Klasse minimiert wird, wird neu als medoid festgelegt. Entspricht update_medoids im Code. Konzentrieren Sie sich auf jede Serie in der Klasse, bereiten Sie einen Mindist vor, der den Wert speichert, der den Gesamtabstand von dieser Serie zu allen anderen Serien in der Klasse minimiert, und Medoide, die neue Medoide speichern. Es befindet sich im Zustand von Mindist = \ [?,? ], Medoids = \ [?,? ]. Welches Label ist dann A bis E zugeordnet? , Wie groß ist der Gesamtabstand zu anderen Etiketten? Lassen Sie uns die Serie mit dem geringsten Gesamtabstand zu anderen Labels zum neuen Medoid aktualisieren. Erste Serie A. Serie A entspricht der Bezeichnung 0, und andere Serien, die 0 zugewiesen sind, entsprechen dem roten Kreis unten, wenn die Werte aus Serie C und Serie D überprüft werden. Dtw-Matrix. Da 363 + 1388 = 1751, Mindist = \ [1751 ,? ], Medoids = \ [0,?]. Serie B. Serie B ist mit 1 gekennzeichnet, und die einzige andere Serie, die 1 zugewiesen ist, ist Serie E. Wenn Sie also den Wert aus der dtw-Matrix 1156 überprüfen. Daher ist mindist = \ [1751, 1156 ], medoids = \ [0, 1 ](bisher hat sich nichts geändert) Serie C. Serie C ist mit 0 gekennzeichnet, und die anderen Serien, die 0 zugewiesen sind, sind Serie A und Serie D. Wenn Sie also die Werte aus der dtw-Matrix überprüfen, beträgt die Summe 1447 (363 + 1084). Da dies kleiner als 1751 ist, aktualisieren Sie mindist = \ [1447, 1156 ], medoids = \ [2, 1 ]. Serie D hat die Bezeichnung 0, und wenn Sie die Werte aus der dtw-Matrix überprüfen, beträgt die Summe 2472, was durch ist, weil der Mindist nicht aktualisiert wird. Serie E überprüft den Wert aus der dtw-Matrix sowie der Bezeichnung 1 und aktualisiert den Mindist nicht, sodass er abgeschlossen ist.

Von oben wurde Medoid von \ [0, 1 ] auf \ [2, 1 ] aktualisiert. Ordnen Sie dieses neue Medoid dem Medoid zu, das jeder Serie am nächsten liegt, und verwenden Sie dabei das gleiche Verfahren wie in Schritt 2. Es kann in gute Gefühle unterteilt werden.

Ich denke, dass die Erklärung überflüssig und schwer zu verstehen ist, aber die k-Medoids-Methode besteht darin, das obige Verfahren zu wiederholen, bis das Medoid nicht aktualisiert und klassifiziert ist.

Unten finden Sie ein Programm der in Python geschriebenen k-medoids-Methode. (Ich habe es bisher geschrieben, aber es ist einfacher zu verwenden, da die Bibliothek vorbereitet ist ...)

#Algorithmus der kmedoids-Methode
def kmedoids(dtw_matrix, total_class_num):
    medoids = initialize_medoids(dtw_matrix, total_class_num)
    label = [0 for i in range(len(dtw_matrix))] #len(dtw_matrix)Enthält 0 der Länge von,Jetzt sind alle Zeitreihenbezeichnungen 0
    for i in range(0, 100):
        new_label = assign_to_nearest(dtw_matrix, medoids)
        if new_label == label:
            break
        label = new_label
        medoids = update_medoids(dtw_matrix, label, total_class_num)
    return (label, medoids)

def update_medoids(dtw_matrix, label, total_class_num):
    n = len(dtw_matrix)
    mindists = [np.inf for i in range(total_class_num)]  #Array mit inf für die Anzahl der Klassen. k=Wenn 3[inf, inf, inf]
    medoids = [np.inf for i in range(total_class_num)]
    for i in range(0, n):
        ts_label = label[i]
        dist_total = 0
        for j in range(0, n):
            if label[j] == ts_label:
                dist_total += dtw_matrix[i][j]
        if dist_total < mindists[ts_label]:
            mindists[ts_label] = dist_total
            medoids[ts_label] = i
    return medoids

def assign_to_nearest(dtw_matrix, medoids):
    total_class_num = len(medoids)
    label = [0 for i in range(len(dtw_matrix))]
    for i in range(0, len(dtw_matrix)):
        mindist = np.inf
        nearest = 0
        for j in range(0, total_class_num):
            if dtw_matrix[i][medoids[j]] < mindist:
                mindist = dtw_matrix[i][medoids[j]]
                nearest = j
        label[i] = nearest
    return label

def initialize_medoids(dtw_matrix, total_class_num):
    medoids = list(range(len(dtw_matrix)))
    return medoids[0:total_class_num]

Transaktion

Dann machen Sie einen Deal. Konzentrieren Sie sich unmittelbar vor der vorhergesagten Serie auf die Serie und überprüfen Sie, zu welcher Klasse die Serie gehört. Wenn mehr als die Hälfte der Serien in dieser Klasse steigt (fällt), sagen wir voraus, dass sie in Zukunft steigen (fallen) und eine Kauf- (Verkaufs-) Entscheidung treffen werden. Wenn es tatsächlich nur geringfügig ansteigt, wird es als Erfolg gewertet, und die vorhergesagte Periode wird in der Datenerfassungsperiode gespeichert und das Clustering wird erneut durchgeführt.

Im vorherigen Beispiel wird bei der Vorhersage von Januar 2016, dem ersten der Überprüfungsperiode (2016 bis Ende 2018), die klassifizierte Klasse der Serie von Dezember 2015 verwendet, bei der es sich um die vorherige Serie handelt. Bestätigung: Transaktion nach Klasse, nach dem Ende wird die Serie von Januar 2016 im Datenerfassungszeitraum gespeichert und erneut geclustert, und dann wird die Serie von Februar 2016 vorhergesagt. <img width = "600"src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/512508/db4b3cf1-8577-914c-fc19-7580deeab002.png ">

Auf diese Weise wurde die korrekte Antwortrate berechnet, indem verschiedene Datenerfassungs- und Überprüfungszeiträume festgelegt und der Vorhersagezeitraum geändert wurden.

3 Analyseausführung

Wenn Sie mit dem Schreiben des Codes fertig sind, können Sie reich werden, wenn Sie ihn genau analysieren können! Ich war aufgeregt. Aber es war nicht so süß. Die Ergebnisse sind wie folgt.

Prognosezeitraum: Monatlich

image.png image.png image.png image.png image.png

Voraussichtlicher Zeitraum: Wöchentlich

image.png image.png image.png image.png image.png

Prognosezeitraum: täglich

image.png image.png image.png image.png image.png

Die Anzahl der Klassen war auf 5 Muster von 3 bis 7 begrenzt (es änderte sich nicht viel, selbst wenn ich es erhöhte) und das Ergebnis wurde erhalten. Alle Ergebnisse haben eine korrekte Antwortrate von etwa 40 bis 50%, was etwas enttäuschend ist. Es gibt aber noch viel Raum für Verbesserungen.

Nachdem wir die Handelsmethode überprüft und zwei Hypothesen geprüft und umgesetzt hatten, konnten wir für jede Woche eine durchschnittliche korrekte Antwortrate von etwa 65% erreichen. Ich werde dies in einem anderen Artikel zusammenfassen.

Die Ausführungszeit ist lang!

Es ist sehr lang. In Fällen, in denen der Vorhersagezeitraum täglich ist, dauert die einmalige Ausführung etwa 100 Minuten. Ich wollte früher Ergebnisse erzielen. Ich verwende ein MacBook Air (Anfang 2015), einen 1,6-GHz-Dual-Core-Intel Core i5-Prozessor und 8 GB Speicher, den ich nicht angepasst habe, aber neulich einen neuen Computer gekauft habe.

Die technischen Daten sind CPU: Core i7-9850H (2,6 GHz, 6 Kerne), Speicher: 16 GB, NVIDIA GeForce MX150 (GPU).

Zusätzlich zu diesem Programm denke ich darüber nach, zu vergleichen, wie viel Zeitunterschied es gibt, wenn ein maschinelles Lernprogramm basierend auf Büchern usw. auf einem MacBook Air und einem mit GPU ausgestatteten Laptop ausgeführt wird.

Verweise

So erhalten Sie eine große Menge früherer Austauschdaten von der FX-API (für maschinelles Lernen)Aktienkursprognose unter Verwendung der Ähnlichkeit von AktienkursschwankungsmusternAnwendung der Marktprognose k-Medoids Clustering mit Indexing Dynamic Time Warping auf den Aktienmarkt unter Verwendung von Kursschwankungsmustern / _pdf) ・ Analyse des Wertpapier- / Börsen- / virtuellen Währungsmarktes nach Preisschwankungsmustern

Recommended Posts

Ich habe den Dollar-Yen mit der k-medoids-Methode in Python geclustert und die richtige Antwortrate gefunden.
Ich habe die Methode der kleinsten Quadrate in Python ausprobiert
Bestimmen Sie den Schwellenwert mithilfe der P-Tile-Methode in Python
Ich habe die Referenzgeschwindigkeit überprüft, wenn ich Python-Liste, Wörterbuch und Set-Typ verwendet habe.
Ich habe einen AttributeError erhalten, als ich die offene Methode in Python verspottet habe
Ich habe Node.js und Python beim Erstellen eines Miniaturbilds mit AWS Lambda verglichen
Ich habe die Warteschlange in Python geschrieben
Ich habe versucht, die "Lebenstein-Distanz" mit Python zu berechnen
Ich habe den Stack in Python geschrieben
So schreiben Sie den richtigen Shebang in Perl-, Python- und Ruby-Skripten
Ich habe Umgebungsvariablen in Docker festgelegt und in Python angezeigt.
Der Dateiname war in Python schlecht und ich war süchtig nach Import
Hinweise zur Verwendung von cChardet und python3-chardet in Python 3.3.1.
Versuchen Sie es mit der Wunderlist-API in Python
Versuchen Sie, die Kraken-API mit Python zu verwenden
Tweet mit der Twitter-API in Python
Ich habe versucht, die Bayes'sche Optimierung von Python zu verwenden
CheckIO (Python)> Der meistgesuchte Buchstabe, den ich ausprobiert habe> Suche nach den häufigsten Alphabeten> Verwenden des Zählers in Sammlungen, Verwenden von filter () und sortiert (), Methode durch Eingabe von max (), string.ascii_lowercase
Ich habe die Geschwindigkeit regulärer Ausdrücke in Ruby, Python und Perl (Version 2013) verglichen.
Beachten Sie, dass ich den Algorithmus der kleinsten Quadrate verstehe. Und ich habe es in Python geschrieben.
Ich möchte den Dateinamen, die Zeilennummer und den Funktionsnamen in Python 3.4 erhalten
vprof - Ich habe versucht, den Profiler für Python zu verwenden
Ich habe versucht, Web-Scraping mit Python und Selen
Ich habe versucht, Objekte mit Python und OpenCV zu erkennen
Die Antwort von "1/2" unterscheidet sich zwischen Python2 und 3
Lernen Sie das Entwurfsmuster "Vorlagenmethode" in Python
Versuchen Sie es mit der BitFlyer Ligntning API in Python
Ich habe versucht, "Birthday Paradox" mit Python zu simulieren
Ich habe eine Klasse in Python3 und Java geschrieben
Dynamisches Ersetzen der nächsten Methode in Python
Lernen Sie das Entwurfsmuster "Factory Method" in Python
Über den Unterschied zwischen "==" und "is" in Python
Korrigieren Sie Schwankungen der Notation in halber und voller Breite in Python
Verarbeiten Sie den Index in Python mit dem ScriptUpdateProcessor von Solr vor
Ich habe versucht, die inverse Gammafunktion in Python zu implementieren
Versuchen Sie, die Monte-Carlo-Methode in Python zu implementieren
Versuchen Sie, die ChatWork-API und die Qiita-API in Python zu verwenden
Ich möchte den Fortschritt in Python anzeigen!
Versuchen Sie, die DropBox Core-API mit Python zu verwenden
Objektverfolgung mit OpenCV3 und Python3 (Verfolgung von Funktionspunkten, die mit der Maus mithilfe der Lucas-Kanade-Methode festgelegt wurden)
Approximieren Sie eine Bezier-Kurve durch einen bestimmten Punkt mit der Methode der kleinsten Quadrate in Python
Ich habe die Geschwindigkeit der Referenz des Pythons in der Liste und die Referenz der Wörterbucheinbeziehung aus der In-Liste verglichen.
Ich möchte die Variablen in der Python-Vorlagendatei ersetzen und in einer anderen Datei in Massenproduktion herstellen
In Python3.8 und höher kann der inverse Mod mit der integrierten Funktion pow berechnet werden.
Ich habe die Python-Version von "Berücksichtigung von Conner Davis 'Antwort" Drucken von Zahlen von 1 bis 100 ohne Verwendung von Schleife, rekursiv, goto "ausprobiert.