Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有关数组的数据类型的信息_Python_Types_Numpy - Fatal编程技术网

Python 有关数组的数据类型的信息

Python 有关数组的数据类型的信息,python,types,numpy,Python,Types,Numpy,我知道numpy有方法numpy.finfo()获取有关基于浮点的数据类型的信息,有方法numpy.iinfo()获取其整数对应项。有接受任何数据类型的方法吗?目前,我被迫自己选择正确的一个: try: maxv = numpy.finfo(data.dtype).max except: maxv = numpy.iinfo(data.dtype).max 我不认为NumPy提供了这样的功能。只需自己定义函数,将其放入模块中,并根据需要导入即可。请注意,通常使用除之外的裸是一种

我知道numpy有方法
numpy.finfo()
获取有关基于浮点的数据类型的信息,有方法
numpy.iinfo()
获取其整数对应项。有接受任何数据类型的方法吗?目前,我被迫自己选择正确的一个:

try:
    maxv = numpy.finfo(data.dtype).max
except:
    maxv = numpy.iinfo(data.dtype).max

我不认为NumPy提供了这样的功能。只需自己定义函数,将其放入模块中,并根据需要导入即可。请注意,通常使用除之外的裸
是一种不好的做法。在这里使用except
ValueError
会更好。

对于“any”类型,我非常确定没有这种方法,因为这不是一般信息

In [7]: np.array([], dtype=object).dtype.itemsize
Out[7]: 8
一般来说,这是一个对象。这种阵列的每个单元都需要一个能够存储内存地址的存储大小。例如,它可能引用Python long,但这可能不是您使用NumPy执行的任务类型

小心:Python长时间强制转换为int64,除非它足够大,需要超过64位

In [11]: np.array([long(123)]).dtype
Out[11]: dtype('int64')

In [12]: np.array([123456789 ** 1234]).dtype
Out[12]: dtype('object')
如果是“float”或“integer”,则可以从
kind
属性中获取信息

In [14]: np.array([123456789 ** 1234]).dtype.kind
Out[14]: 'O'

In [15]: np.array([long(123)]).dtype.kind
Out[15]: 'i'

In [16]: np.array([2.3, 4.3]).dtype.kind
Out[16]: 'f'
您可以通过名称从NumPy获得:

{"i": np.iinfo, "f": np.finfo}[data.dtype.kind](data.dtype).max