You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							55 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
	
	
							55 lines
						
					
					
						
							1.4 KiB
						
					
					
				"""
 | 
						|
=============
 | 
						|
Masked Arrays
 | 
						|
=============
 | 
						|
 | 
						|
Arrays sometimes contain invalid or missing data.  When doing operations
 | 
						|
on such arrays, we wish to suppress invalid values, which is the purpose masked
 | 
						|
arrays fulfill (an example of typical use is given below).
 | 
						|
 | 
						|
For example, examine the following array:
 | 
						|
 | 
						|
>>> x = np.array([2, 1, 3, np.nan, 5, 2, 3, np.nan])
 | 
						|
 | 
						|
When we try to calculate the mean of the data, the result is undetermined:
 | 
						|
 | 
						|
>>> np.mean(x)
 | 
						|
nan
 | 
						|
 | 
						|
The mean is calculated using roughly ``np.sum(x)/len(x)``, but since
 | 
						|
any number added to ``NaN`` [1]_ produces ``NaN``, this doesn't work.  Enter
 | 
						|
masked arrays:
 | 
						|
 | 
						|
>>> m = np.ma.masked_array(x, np.isnan(x))
 | 
						|
>>> m
 | 
						|
masked_array(data = [2.0 1.0 3.0 -- 5.0 2.0 3.0 --],
 | 
						|
      mask = [False False False  True False False False  True],
 | 
						|
      fill_value=1e+20)
 | 
						|
 | 
						|
Here, we construct a masked array that suppress all ``NaN`` values.  We
 | 
						|
may now proceed to calculate the mean of the other values:
 | 
						|
 | 
						|
>>> np.mean(m)
 | 
						|
2.6666666666666665
 | 
						|
 | 
						|
.. [1] Not-a-Number, a floating point value that is the result of an
 | 
						|
       invalid operation.
 | 
						|
 | 
						|
.. moduleauthor:: Pierre Gerard-Marchant
 | 
						|
.. moduleauthor:: Jarrod Millman
 | 
						|
 | 
						|
"""
 | 
						|
from . import core
 | 
						|
from .core import *
 | 
						|
 | 
						|
from . import extras
 | 
						|
from .extras import *
 | 
						|
 | 
						|
__all__ = ['core', 'extras']
 | 
						|
__all__ += core.__all__
 | 
						|
__all__ += extras.__all__
 | 
						|
 | 
						|
from numpy._pytesttester import PytestTester
 | 
						|
test = PytestTester(__name__)
 | 
						|
del PytestTester
 |