首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建数组时dtype = np.int和int之间的差异

创建数组时dtype = np.int和int之间的差异
EN

Stack Overflow用户
提问于 2021-10-08 06:50:32
回答 1查看 945关注 0票数 2

我对整数类型之间的区别感到困惑。

例如,这里是一个带有dtype numpy.arraynp.int

代码语言:javascript
运行
复制
>>> arr_ = np.array([1,2], dtype = np.int)

通过下面的代码,它表示,即intnp.int相同

代码语言:javascript
运行
复制
>>> int is np.int
Out[1]: True

但是,当我选择使用np.int的dtype创建的数组的第一个值时,下面的代码输出false

代码语言:javascript
运行
复制
>>> type(arr_[0]) is int
Out[2]: False

为什么代码输出false而不是true

dtype = np.int似乎不适用于arr_

为什么np.int不作为数组上的dtype应用?

我调查过this,但没有得到我需要的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-08 07:46:45

在Python中,类型intnp.int32np.int64有3种不同的类型:

  • int是本机PythonMulti精度整数类型,能够表示任何整数值(唯一的限制是可用内存)。例如,value
  • np.int32是一个有效的int32_t C整数类型,它可以表示使用最多32位的值,即-2147483648之间的值,而2147483647
  • np.int64int64_t C整数类型,它可以表示最多消耗64位的值,即-9223372036854775808和9223372036854775807

之间的值。

np.int是本机Python int类型的一个(不推荐的别名),这是int is np.int为true的原因。但是,numpy整数数组,即使使用dtype=int,也会接收实际类型的np.int32np.int64,因为它们必须由C代码处理,所以必须强制使用固定大小的整数类型。如果确实需要存储真正的int值,则必须使用dtype=object,但操作将不再是可向量化的。

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

https://stackoverflow.com/questions/69491672

复制
相关文章

相似问题

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