2017-07-11 17 views
5

Próbowałem przy użyciu funkcji np.isin(), ale za każdym razem zrobić, to zwraca mi błąd:numpy nie mając „ISIN” atrybutu

AttributeError: 'module' object has no attribute 'isin' 

tutaj jest dokładnie to, co robię

import numpy as np 
a = np.arange(9).reshape((3,3)) 
test = np.arange(5) 
print np.isin(a, test) 

Nie znalazłem żadnych informacji na temat tego problemu, używam najnowszej wersji numpy i nie miałem żadnego problemu z innym modułem numpy, dlaczego zwraca mi ten błąd?

+0

nie powinno to być 'np.sin()'? – ksai

+0

@ksai Nie, użytkownik pyta o 'np.isin'. @Tissuebox Działa to dla mnie w Pythonie3. –

+1

np.sin() zwraca sinus numeru, np.isin() to zupełnie inna sprawa – Tissuebox

Odpowiedz

6

Czytając sekcji nuty docs pokazuje

New in version 1.13.0.

Podejrzewam, że jeśli nie

print(np.__version__) 

widać coś mniej niż 1.13.0.

7

Funkcja isin dodano NumPy 1.13:

New np.isin function, improves on in1d .

Prawdopodobnie korzystasz ze starszej wersji.

+2

Awans o wspomnienie funkcji, którą skutecznie zastępuje. –

5

Po [źródło] Link w docs uważam, że:

def isin(element, test_elements, assume_unique=False, invert=False): 
    "..." 
    element = np.asarray(element) 
    return in1d(element, test_elements, assume_unique=assume_unique, 
       invert=invert).reshape(element.shape) 

To nie robi nic, że nie można już zrobić z in1d.

Plik zawierający można pobrać i wykorzystać z własnego katalogu. Ma ulepszony unique.