numpy.isscalar#

numpy.isscalar(element)[源代码]#

如果 element 的类型是标量类型,则返回 True.

参数:
element任何

输入参数,可以是任何类型和形状.

返回:
valbool

如果 element 是标量类型,则为 True;否则为 False.

参见

ndim

获取数组的维度数

备注

如果你需要一个更严格的方法来识别一个 数值 标量,使用 isinstance(x, numbers.Number) ,因为这会返回 False 给大多数非数值元素,例如字符串.

在大多数情况下,应使用 np.ndim(x) == 0 而不是此函数,因为这也会对 0d 数组返回 true.这就是 numpy 如何重载 gradientdx 参数和 histogrambins 参数等函数的方式.一些关键区别:

x

isscalar(x)

np.ndim(x) == 0

PEP 3141 数字对象(包括内置对象)

True

True

内置字符串和缓冲对象

True

True

其他内置对象,如 pathlib.PathException,以及 re.compile 的结果

False

True

matplotlib.figure.Figure 这样的第三方对象

False

True

零维 numpy 数组

False

True

其他 numpy 数组

False

False

list, tuple, 和其他序列对象

False

False

示例

>>> import numpy as np
>>> 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 支持 PEP 3141 数字:

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