【问题标题】:What is numpy method int0?什么是 numpy 方法 int0?
【发布时间】:2018-06-29 06:15:42
【问题描述】:

我已经看到 np.int0 在 OpenCV 问题中用于将边界框浮点值转换为 int。

np.int0 到底是什么?

我见过np.uint8np.int32 等。我似乎在任何在线文档中都找不到np.int0。这会将参数转换为哪种 int?

【问题讨论】:

  • @Prune:嗯,正如提问者所说,int0 没有 NumPy 文档。
  • @user2357112:我不同意。对“numpy int0 function”的简单搜索会显示大量标识,即使它是 package constant or class 而不是函数。
  • 另外,在 Python 命令行中输入 numpy.int0 可以识别项目。
  • @Prune:这些文档已经非常过时,对于现代 NumPy 来说不再准确;例如,他们将Int0(大写 - 该术语永远不会以小写形式出现)描述为可用的最小整数。
  • 当前 NumPy 文档中没有出现 int0。在命令行中输入numpy.int0 也不够;这样做,您可能会认为它是固定大小的类型。一位回答者已经犯了这个错误。

标签: python numpy methods int


【解决方案1】:

int0 是一个alias for intp;这反过来又是

用于索引的整数(与 C ssize_t 相同;通常为 int32int64

-- Numpy docs: basic types

【讨论】:

  • 感谢您的澄清!为什么在Scipy.org 上的Data types 的文档中没有提到这一点?知道这会很有帮助。
  • 现在这个问题我没有答案。 :)
  • @A.Hendry 可能是因为没人想到,yet。 (尽管numpydoc 可能是报告问题的更好地方;或提交拉取请求)。
  • @jpaugh:numpydoc 是 NumPy 用于文档字符串预处理的 Sphinx 扩展; NumPy 文档中的问题应在主要 NumPy 问题跟踪器上报告。
  • @user2357112 谢谢!这就是我尝试“路过”社区所得到的结果。
【解决方案2】:

这只是int64 的别名,请在 Python 2 或 Python 3 中尝试:

>>> import numpy
>>> numpy.int0 is numpy.int64
True

【讨论】:

  • 我认为这取决于系统架构和操作系统
  • 实际上 OP 问题中的方法是“构造函数”,np.int0(1.7) 给出了其论点的组成部分。在一本关于 OpenCV 的书 2020 年版中找到。
【解决方案3】:

这里有更多信息:

# get complete list of datatype names
>>> np.sctypeDict.keys()

# returns the default integer type (here `int64`)
>>> np.sctypeDict['int0']
<class 'numpy.int64'>

# verify
>>> arr = np.int0([1, 2, 3])
>>> arr.nbytes
24

【讨论】:

    猜你喜欢
    • 2022-11-03
    • 2019-02-28
    • 2017-03-28
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    相关资源
    最近更新 更多