什么是numpy的int0方法?

36

我曾看到在OpenCV问题中将边界框浮点值转换为整数时使用了 np.int0

那么,np.int0 到底是什么?

我曾看到过 np.uint8np.int32 等类型。但我似乎在任何在线文档中都找不到 np.int0。那么这个方法会将参数转换成什么样的整数?


6
@Prune:好吧,就像提问者所说的那样,int0 没有 NumPy 文档。 - user2357112
@user2357112:我不同意。只要简单搜索“numpy int0函数”,就会出现大量的标识,即使它是一个包常数或类,而不是一个函数。 - Prune
1
当前的NumPy文档中没有int0的出现。在命令行中键入numpy.int0也不够;这样做,你可能会认为它是一个固定大小的类型。已经有一个回答者犯了这个错误。 - user2357112
@Prune 没错,我在Numpy文档中也没有找到与 np.int0 相关的任何内容。@user2357112 在网上有一些使用 np.int0 的例子,但文档中没有。 - A. Hendry
我在上面的“@”名称搞砸了,还没完成就不小心按下了回车键。(手残)@user2357112 没错。我在Numpy文档中找不到任何关于np.int0的内容。@Prune 在网上有使用np.int0的示例,但文档中没有,这让我感到困惑。但我没有想到将其输入命令行。谢谢你!你能把找到的引用int0等同于intp的链接发送给我吗?我想将它们提交给numpydoc作为更新文档的拉取请求。 - A. Hendry
显示剩余5条评论
3个回答

31

1
谢谢您的澄清!为什么在 Scipy.org 的“数据类型”文档中没有提到这一点?这本来是很有帮助的。 - A. Hendry
那个问题我没有答案。 :) - Amadan
@A.Hendry 可能是因为还没有人想到过(https://docs.scipy.org/doc/numpy/bugs.html)。 (尽管[numpydoc](https://github.com/numpy/numpydoc)可能是报告问题或提交拉取请求的更好地方)。 - jpaugh
1
@jpaugh:numpydoc是Sphinx扩展程序,NumPy用于文档字符串预处理;NumPy文档中的问题应在主要的NumPy问题跟踪器上报告。 - user2357112
@A.Hendry,很可能int0是一个遗留值,numpy是几个数值包(超过10年前)合并的结果。因此,为了向后兼容性而保留了各种重复的名称和函数。这是一个别名,在新代码中不需要。opencv也很老,所以原始的Python端口可以使用其中一个numpy的前身。 - hpaulj
显示剩余2条评论

10

这只是一个别名,与 int64 相同,在 Python 2 或 Python 3 中都可以尝试:

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

6
这取决于系统架构和操作系统。 - juanpa.arrivillaga
实际上,OP问题中的方法是“构造函数”,np.int0(1.7)给出其参数的整数部分。这段内容出现在一本关于OpenCV的2020年版书籍中。 - mins

2
这里有更多信息:

# 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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接