2024-04-19 07:56:21 发布
网友
我知道numpy有方法numpy.finfo()来获取关于基于浮点的数据类型的信息,有方法numpy.iinfo()来获取它的整数对应项。有接受任何数据类型的方法吗?目前,我不得不自己选择一个合适的:
numpy.finfo()
numpy.iinfo()
try: maxv = numpy.finfo(data.dtype).max except: maxv = numpy.iinfo(data.dtype).max
对于“any”类型,我很确定没有这样的方法,因为这不是一般信息。你知道吗
In [7]: np.array([], dtype=object).dtype.itemsize Out[7]: 8
一般来说,那是个物体。这样一个数组的每个单元都需要一个可以存储内存地址的存储大小。例如,它可能引用Python long,但这可能不是您使用NumPy的任务类型。你知道吗
小心:Python long强制转换为int64,除非它足够大,需要超过64位!你知道吗
In [11]: np.array([long(123)]).dtype Out[11]: dtype('int64') In [12]: np.array([123456789 ** 1234]).dtype Out[12]: dtype('object')
您可以从kind属性获取“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
我不认为NumPy提供了这样的功能。只需自己定义函数,将其放入模块中,并根据需要导入即可。请注意,通常使用裸except是一种不好的做法。在这里使用exceptValueError会更好。你知道吗
except
ValueError
对于“any”类型,我很确定没有这样的方法,因为这不是一般信息。你知道吗
一般来说,那是个物体。这样一个数组的每个单元都需要一个可以存储内存地址的存储大小。例如,它可能引用Python long,但这可能不是您使用NumPy的任务类型。你知道吗
小心:Python long强制转换为int64,除非它足够大,需要超过64位!你知道吗
您可以从
kind
属性获取“float”或“integer”信息你可以从NumPy获得它的名字:
我不认为NumPy提供了这样的功能。只需自己定义函数,将其放入模块中,并根据需要导入即可。请注意,通常使用裸
except
是一种不好的做法。在这里使用exceptValueError
会更好。你知道吗相关问题 更多 >
编程相关推荐