Previous topic

numpy.isrealobj

Next topic

numpy.logical_and

numpy.isscalar

numpy.isscalar(num)[source]

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

Parameters:
num : any

Input argument, can be of any type and shape.

Returns:
val : bool

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

See also

ndim
Get the number of dimensions of an array

Notes

In almost all 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
>>> isscalar(Fraction(5, 17))
True
>>> from numbers import Number
>>> isscalar(Number())
True