2016-08-26 2 views
1

Gibt es eine Funktion in Numpy, um 0 und 1 in einem binären Array zu invertieren? Wenn0 und 1 in einem binären Array invertieren

a = np.array([0, 1, 0, 1, 1]) 

möchte ich bekommen:

b = [1, 0, 1, 0, 0] 

Ich benutze:

b[a==0] = 1 
b[a==1] = 0 

aber vielleicht schon es existieren etwas in Numpy dies zu tun.

+4

Sie können einfach 'tun b = 1-a'. – shivsn

+0

möglich duplizieren von http://StackOverflow.com/questions/13728708/inverting-a-numpy-boole-array-using – danidee

Antwort

7

Sie können einfach tun:

In[1]:b=1-a 
In[2]:b 
Out[2]: array([1, 0, 1, 0, 0]) 

oder

In[22]:b=(~a.astype(bool)).astype(int) 
Out[22]: array([1, 0, 1, 0, 0]) 
4

Ein funktionaler Ansatz:

>>> np.logical_not(a).astype(int) 
array([1, 0, 1, 0, 0]) 
Verwandte Themen