Numpy gcd-Funktion

8

Hat numpy irgendwo in seiner Modulstruktur eine gcd Funktion?

Ich kenne fractions.gcd , denke aber, dass ein numpy -Äquivalent möglicherweise schneller ist und mit numpy -Datentypen besser funktioniert.

Ich konnte auf Google keinen anderen Link finden als diesen Link das scheint veraltet zu sein und ich weiß nicht, wie ich auf die _gcd Funktion zugreifen würde, die es suggeriert, existiert.

Naiv versuchen:

%Vor%

hat nicht für mich funktioniert ...

    
bph 22.03.2013, 11:38
quelle

4 Antworten

10

Sie können es selbst schreiben:

%Vor%

Hier ist der Code, um das Ergebnis und die Geschwindigkeit zu testen:

%Vor%     
HYRY 22.03.2013, 12:46
quelle
7

Es scheint noch keine gcd Funktion in numpy vorhanden zu sein. Allerdings gibt es eine gcd-Funktion im Bruchmodul . Wenn Sie gcd für numpy -Arrays ausführen müssen, können Sie ein ufunc damit erstellen:

%Vor%     
Charles Brunet 22.03.2013 11:50
quelle
7

Öffentliche Bekanntmachung für jeden, der Python 3.5 verwendet

%Vor%

Und wenn Sie es selbst in einem One-Liner schreiben möchten:

%Vor%     
lababidi 25.10.2016 23:31
quelle
0

Falls das gewünschte Ergebnis nicht ein elementweises gcd ist, sondern das gcd aller Zahlen im Array, können Sie den folgenden Code verwenden.

%Vor%

Je nach Anwendungsfall kann der Sortierschritt a = np.unique(a) schneller entfallen.

Eine alternative (vielleicht elegante, aber langsamere) Implementierung mit ufuncs ist

%Vor%     
Samufi 02.11.2017 20:12
quelle