这个问题在这里已经有了答案:
Size of data type using NumPy
(2 个回答)
7年前关闭。
有没有一种简单的方法来获取与特定 numpy 类型对应的 8 位字节数?
我知道我可以这样做:
lookup = {np.uint8: 1, np.int8: 1,
np.uint16: 2, np.int16: 2,
np.uint32: 4, np.int32: 4,
np.uint64: 8, np.int64: 8}
def getByteSize(dtype):
return lookup[dtype]
但这似乎有点笨拙,似乎应该有一种内置的方法来检索此信息。
最佳答案
您可以使用 nbytes
类型实例的属性:
In [8]: np.uint8(0).nbytes
Out[8]: 1
In [9]: np.uint16(0).nbytes
Out[9]: 2
In [10]: np.uint32(0).nbytes
Out[10]: 4
等等。
您可以删除参数(假设为 0),也可以使用
itemsize
属性而不是 nbytes
:In [13]: np.int32().itemsize
Out[13]: 4
一种(显然)避免创建数字类型实例的方法是创建一个
dtype
对象,然后访问其 itemsize
属性(但我怀疑这会比简单地创建数字类型的实例更节省内存或时间):In [14]: dt = np.dtype(np.int32)
In [15]: dt.itemsize
Out[15]: 4
(我说“显然”是因为我没有查看
dtype
的源代码。据我所知,它可能会创建其参数的实例。)
关于python - 从 numpy 类型获取位数的简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19599864/