我正在尝试理解Numpy中dtypes的逻辑。
numpy.min_scalar_type(10)
-> uint8
并且:
a = numpy.array([10])
print(a.dtype)
-> int32 (on my machine)
我原本期望的是uint8
而不是int32
,因为(1.9)文档如下:
numpy.array(object, dtype=None, ...)
dtype : 数据类型,可选参数。数组中所需的数据类型。如果未给出,则类型将被确定为容纳序列中对象所需的最小类型。
还有:
numpy.min_scalar_type(a)
对于标量a,返回可以保存其值的最小大小和最小标量类型的数据类型。
...
返回结果:out : 数据类型。最小的数据类型。
我是否有什么误解?
a.dtype
的int64
。 - Paulnp.array
给你的是“最小类型”。最小类型是整数,它并没有给你最小尺寸的整数类型(这是完全合理的)。 - cel