diff --git a/ndarray/ndarray.py b/ndarray/ndarray.py
index d3a7bc2..872e914 100644
--- a/ndarray/ndarray.py
+++ b/ndarray/ndarray.py
@@ -2986,7 +2986,7 @@ def indexing_key_expand_implicit_axes(key, shape):
     (slice(None, 2, None), None, 0, slice(None, None, None))
     >>> bool_array = np.array([[True, False, True, False],
                                [False, True, False, True],
-                               [True, False, True, False]], dtype=np.bool)
+                               [True, False, True, False]], dtype=bool)
     >>> indexing_key_expand_implicit_axes(np.s_[bool_array, None, 0:2], shape)
     (array([0, 0, 1, 1, 2, 2], dtype=int64), array([0, 2, 1, 3, 0, 2], dtype=int64), None, slice(None, 2, None))
     """
@@ -3017,7 +3017,7 @@ def indexing_key_expand_implicit_axes(key, shape):
                 )
             ell_idx = i
         else:
-            # convert primitive type boolean value to mx.np.bool type
+            # convert primitive type boolean value to bool (formerly mx.np.bool) type
             # otherwise will be treated as 1/0
             if isinstance(idx, bool):
                 idx = array(idx, dtype=np.bool_)
diff --git a/ndarray/numpy/_op.py b/ndarray/numpy/_op.py
index 39a307b..521262d 100644
--- a/ndarray/numpy/_op.py
+++ b/ndarray/numpy/_op.py
@@ -374,7 +374,7 @@ def full(shape, fill_value, dtype=None, order='C', ctx=None, out=None):  # pylin
         return ret
     if isinstance(fill_value, bool):
         fill_value = int(fill_value)
-        dtype = _np.bool if dtype is None else dtype
+        dtype = bool if dtype is None else dtype
     dtype = _np.float32 if dtype is None else dtype
     return _npi.full(shape=shape, value=fill_value, ctx=ctx, dtype=dtype, out=out)
 # pylint: enable=too-many-arguments, redefined-outer-name
@@ -7107,7 +7107,7 @@ def isinf(x, out=None, **kwargs):
     >>> np.isinf(np.array([np.inf, -np.inf, 1.0, np.nan]))
     array([ True,  True, False, False])
     >>> x = np.array([-np.inf, 0., np.inf])
-    >>> y = np.array([True, True, True], dtype=np.bool_)
+    >>> y = np.array([True, True, True], dtype=bool_)
     >>> np.isinf(x, y)
     array([ True, False,  True])
     >>> y
@@ -7152,7 +7152,7 @@ def isposinf(x, out=None, **kwargs):
     >>> np.isposinf(np.array([-np.inf, 0., np.inf]))
     array([False, False,  True])
     >>> x = np.array([-np.inf, 0., np.inf])
-    >>> y = np.array([True, True, True], dtype=np.bool)
+    >>> y = np.array([True, True, True], dtype=bool)
     >>> np.isposinf(x, y)
     array([False, False,  True])
     >>> y
@@ -7198,7 +7198,7 @@ def isneginf(x, out=None, **kwargs):
     >>> np.isneginf(np.array([-np.inf, 0., np.inf]))
     array([ True, False, False])
     >>> x = np.array([-np.inf, 0., np.inf])
-    >>> y = np.array([True, True, True], dtype=np.bool)
+    >>> y = np.array([True, True, True], dtype=bool)
     >>> np.isneginf(x, y)
     array([ True, False, False])
     >>> y
@@ -7253,7 +7253,7 @@ def isfinite(x, out=None, **kwargs):
     >>> np.isfinite(np.array([np.log(-1.),1.,np.log(0)]))
     array([False,  True, False])
     >>> x = np.array([-np.inf, 0., np.inf])
-    >>> y = np.array([True, True, True], dtype=np.bool)
+    >>> y = np.array([True, True, True], dtype=bool)
     >>> np.isfinite(x, y)
     array([False,  True, False])
     >>> y
diff --git a/numpy/multiarray.py b/numpy/multiarray.py
index 9a803d4..dc72bd0 100644
--- a/numpy/multiarray.py
+++ b/numpy/multiarray.py
@@ -147,7 +147,7 @@ def _as_mx_np_array(object, ctx=None):
     elif isinstance(object, (list, tuple)):
         tmp = [_as_mx_np_array(arr) for arr in object]
         return object.__class__(tmp)
-    elif isinstance(object, (_np.bool_, _np.bool)):
+    elif isinstance(object, (_np.bool_, bool)):
         return array(object, dtype=_np.bool_, ctx=ctx)
     else:
         raise TypeError('Does not support converting {} to mx.np.ndarray.'.format(str(type(object))))
@@ -588,7 +588,7 @@ class ndarray(NDArray):
         ndim = self.ndim  # pylint: disable=redefined-outer-name
         shape = self.shape  # pylint: disable=redefined-outer-name
         if isinstance(key, bool): # otherwise will be treated as 0 and 1
-            key = array(key, dtype=_np.bool, ctx=self.ctx)
+            key = array(key, dtype=bool, ctx=self.ctx)
         if isinstance(key, list):
             try:
                 new_key = _np.array(key)
@@ -716,13 +716,13 @@ class ndarray(NDArray):
         if isinstance(value, NDArray) and not isinstance(value, ndarray):
             raise TypeError('Cannot assign mx.nd.NDArray to mxnet.numpy.ndarray')
         if isinstance(key, bool): # otherwise will be treated as 0 and 1
-            key = array(key, dtype=_np.bool)
+            key = array(key, dtype=bool)
 
         # Handle single boolean assign of matching dimensionality and size first for higher speed
         # If the boolean array is mixed with other idices, it is instead expanded into (multiple)
         # integer array indices and will be handled by advanced assign.
         # Come before the check self.dim == 0 as it also handle the 0-dim case.
-        if isinstance(key, ndarray) and key.dtype == _np.bool:
+        if isinstance(key, ndarray) and key.dtype == bool:
             return self._set_np_boolean_indexing(key, value)
 
         # handle basic and advanced indexing
diff --git a/numpy/utils.py b/numpy/utils.py
index 186b3a0..0e9af64 100644
--- a/numpy/utils.py
+++ b/numpy/utils.py
@@ -34,7 +34,7 @@ int32 = onp.int32
 int8 = onp.int8
 int64 = onp.int64
 bool_ = onp.bool_
-bool = onp.bool
+bool = bool
 
 pi = onp.pi
 inf = onp.inf
diff --git a/symbol/numpy/_symbol.py b/symbol/numpy/_symbol.py
index 5f81a73..4267ab1 100644
--- a/symbol/numpy/_symbol.py
+++ b/symbol/numpy/_symbol.py
@@ -1257,7 +1257,7 @@ def full(shape, fill_value, dtype=None, order='C', ctx=None, out=None):  # pylin
         return ret
     if isinstance(fill_value, bool):
         fill_value = int(fill_value)
-        dtype = _np.bool if dtype is None else dtype
+        dtype = bool if dtype is None else dtype
     dtype = _np.float32 if dtype is None else dtype
     return _npi.full(shape=shape, value=fill_value, ctx=ctx, dtype=dtype, out=out)
 
diff --git a/test_utils.py b/test_utils.py
index 3e3ef5d..bc7548b 100644
--- a/test_utils.py
+++ b/test_utils.py
@@ -77,7 +77,7 @@ def default_rtols():
     return {np.dtype(np.float16): 1e-2,
             np.dtype(np.float32): 1e-4,
             np.dtype(np.float64): 1e-5,
-            np.dtype(np.bool): 0,
+            np.dtype(bool): 0,
             np.dtype(np.int8): 0,
             np.dtype(np.uint8): 0,
             np.dtype(np.int32): 0,
@@ -90,7 +90,7 @@ def default_atols():
     return {np.dtype(np.float16): 1e-1,
             np.dtype(np.float32): 1e-3,
             np.dtype(np.float64): 1e-20,
-            np.dtype(np.bool): 0,
+            np.dtype(bool): 0,
             np.dtype(np.int8): 0,
             np.dtype(np.uint8): 0,
             np.dtype(np.int32): 0,
