首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在cython中np.int、np.int_、int和np.int_t有什么区别?

在cython中np.int、np.int_、int和np.int_t有什么区别?
EN

Stack Overflow用户
提问于 2014-02-18 19:11:51
回答 1查看 37.3K关注 0票数 47

在cython中使用这么多int数据类型让我有点头疼。

np.int, np.int_, np.int_t, int

我猜纯python中的int等同于np.int_,那么np.int是从哪里来的?我在numpy中找不到文档?另外,既然我们已经有了int,为什么还要有np.int_

在cython中,我猜当用作cdef intndarray[int]时,int变成了C类型,而当用作int()时,它仍然是python的施法器?

在C中,np.int_等同于long吗?所以cdef longcdef np.int_是一样的

在什么情况下我应该使用np.int_t而不是np.int?例如cdef np.int_tndarray[np.int_t] ...

有人能简要解释一下这些类型的错误使用会如何影响已编译的cython代码的性能吗?

EN

回答 1

Stack Overflow用户

发布于 2014-02-18 20:30:32

np.int_是默认的整数类型(as defined in the NumPy docs),在64位系统上这将是C longnp.intcint32int64的默认C intnp.int是内置int函数的别名

代码语言:javascript
运行
复制
>>> np.int(2.4)
2
>>> np.int is int  # object id equality
True

cython数据类型应该反映C数据类型,因此cdef int a是一个C int,依此类推。

至于np.int_t (相当于NumPy np.int_数据类型的Cython编译时),np.int64_tCython编译时相当于np.int64的数据类型

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21851985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档