python - 从 numpy 类型获取位数的简单方法?

标签 python types numpy

这个问题在这里已经有了答案:





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/

相关文章:

python - 从 python 脚本启动 vim 并结束脚本

python - 在 Python 中向列表的一部分添加偏移量?

python - Pandas 数据框数据透视表和分组

c++ - 幻影类型是否与原始类型具有相同的对齐方式?

python-2.7 - 我应该如何使用 Google 风格的 Sphinx 记录列表、选项和 yield ?

python - Cython 中的 64 位整数

python - numpy.mean(X,axis=0) 当二维数组时,否则什么都不做

python - 使用 numpy 列表到矩阵转换

python - pip 安装与 conda 安装

python - 将 JSON 文件读入 Spark 时出现 _corrupt_record 错误