In [1]:
import numpy as np
In [2]:
a = np.array([0, 0, 0, 1])
a
Out[2]:
In [3]:
a.sum()
Out[3]:
In [4]:
a.mean()
Out[4]:
In [5]:
b = np.array([0, 0, np.nan, 1])
b
Out[5]:
In [6]:
b.sum()
Out[6]:
In [7]:
b.mean()
Out[7]:
In [8]:
def sum_(x):
return sum(y for y in x if not np.isnan(y))
In [9]:
sum_(a)
Out[9]:
In [10]:
sum_(b)
Out[10]:
In [11]:
def mean_(x):
return np.array(list(y for y in x if not np.isnan(y))).mean()
In [12]:
mean_(a)
Out[12]:
In [13]:
mean_(b)
Out[13]:
In [14]:
1. + np.nan
Out[14]:
In [15]:
1. + 2. + 3.
Out[15]:
In [16]:
1. is np.nan
Out[16]:
In [17]:
np.nan is np.nan
Out[17]:
In [18]:
b[2]
Out[18]:
In [19]:
b[2] is np.nan
Out[19]:
In [20]:
nan
In [21]:
np.isnan(1.)
Out[21]:
In [22]:
np.isnan(np.nan)
Out[22]:
In [23]:
np.isnan(b[2])
Out[23]:
In [24]:
np.isnotnan(1.)
In [25]:
c = np.array([0, 0, None, 1])
c
Out[25]:
In [26]:
c.sum()
In [27]:
c.mean()
In [28]:
d = np.array([0, 0, np.nan, 'np.nan', 1])
d
Out[28]:
In [29]:
for x in d:
try:
is_nan = np.isnan(x)
except TypeError:
is_nan = 'mu'
print(type(x), is_nan, x)
In [30]:
d = np.array([0, 0, np.nan, 1])
d
Out[30]:
In [31]:
for x in d:
try:
is_nan = np.isnan(x)
except TypeError:
is_nan = 'mu'
print(type(x), is_nan, x)