class_docstr: Determines the number of values that fall outside a certain range.
  
  Args:
      lower (float): Lower boundary of range (exclusive). Default is 0.
      upper (float): Upper boundary of range (exclusive). Default is 1.
      skipna (bool): Determines if to use NA/null values. Defaults to
          True to skip NA/null.
  
  Examples:
      >>> count_outside_range = CountOutsideRange(lower=1.5, upper=3.6)
      >>> count_outside_range([1, 2, 3, 4, 5])
      3
  
      The way NaNs are treated can be controlled.
  
      >>> count_outside_range_skipna = CountOutsideRange(skipna=False)
      >>> count_outside_range_skipna([1, 2, 3, 4, 5, None])
      nan
code: def __init__(self, lower=0, upper=1, skipna=True):
      self.lower = lower
      self.upper = upper
      self.skipna = skipna
  
imports: import numpy
  from woodwork.column_schema import ColumnSchema
  from woodwork.logical_types import IntegerNullable
  from featuretools.primitives.base.aggregation_primitive_base import AggregationPrimitive
label_desc: Use image node_id 1 to create a new CountOutsideRange object from inherited base classes: AggregationPrimitive with example: obj = CountOutsideRange(lower, upper, skipna)