2017-05-13 10 views
-2

Ich versuche, diese Linie zu laufen:Python numpy log2 kehrt -inf bei der Verwendung von Popen

print(np.log2((ngram_list.count(('i',)) + 1)/(100000 + len(set(n1gram_list))))) 

Wenn ich mein Skript von Terminal laufen ich -1,54814270552. Aber wenn ich das gleiche Skript über subprocess.Popen ausführen bekomme ich -inf. Grundsätzlich jedes Mal, wenn die Ausgabe von log2 positiv ist, bekomme ich die richtige Ausgabe in beiden Methoden, aber für negative Werte bekomme ich -inf nur bei Verwendung von Popen.

+0

Wir haben nicht genug von einem Beispiel, um dieses Ergebnis zu überprüfen. Bitte sehen Sie [fragen], dann geben Sie ein [mcve]. Andernfalls wird Ihre Frage wahrscheinlich zurückgestellt oder geschlossen. –

Antwort

0

Es scheint, dass Sie 2 Python verwenden, wenn Popen verwenden, die anstelle Integer-Division verwendet.

Verwenden Sie entweder from __future__ import division, konvertieren 100000 + len(set(n1gram_list)) zu Float, oder rufen Sie stattdessen Python 3.

+0

In Popen starte ich den Befehl 'python lm.py'. Wenn ich versuche, 'python3 lm.py' auszuführen, passiert nichts. Wie kann ich diesen Befehl mit Python 3 ausführen? – Shay

Verwandte Themen