# numpy.isscalar

numpy.isscalar(element)

  Returns True if the type of element is a scalar type.

  Parameters:
    element any

      Input argument, can be of any type and shape.

  Returns:
    val bool

      True if element is a scalar type, False if it is not.

  See also

  `ndim`

    Get the number of dimensions of an array

  Notes

  If you need a stricter way to identify a numerical scalar, use `isinstance(x, numbers.Number)`, as that returns `False` for most non-numerical elements such as strings.

  In most cases `np.ndim(x) == 0` should be used instead of this function, as that will also return true for 0d arrays. This is how numpy overloads functions in the style of the `dx` arguments to `gradient` and the `bins` argument to `histogram`. Some key differences:

  x | `isscalar(x)` | `np.ndim(x) == 0`
  --- | --- | ---
  PEP 3141 numeric objects (including builtins) | `True` | `True`
  builtin string and buffer objects | `True` | `True`
  other builtin objects, like `pathlib.Path`, Exception, the result of `re.compile` | `False` | `True`
  third-party objects like `matplotlib.figure.Figure` | `False` | `True`
  zero-dimensional numpy arrays | `False` | `True`
  other numpy arrays | `False` | `False`
  list, tuple, and other sequence objects | `False` | `False`

  Examples

      >>> np.isscalar(3.1)
      True
      >>> np.isscalar(np.array(3.1))
      False
      >>> np.isscalar([3.1])
      False
      >>> np.isscalar(False)
      True
      >>> np.isscalar('numpy')
      True

  NumPy supports PEP 3141 numbers:

      >>> from fractions import Fraction
      >>> np.isscalar(Fraction(5, 17))
      True
      >>> from numbers import Number
      >>> np.isscalar(Number())
      True