gpt4 book ai didi

python - 为什么numpy中的数据类型 `intc`默认为32位?

转载 作者:行者123 更新时间:2023-12-01 09:32:02 34 4
gpt4 key购买 nike

为什么在 64 位操作系统上运行 32 位 Anaconda 和 Python 2.7 时,numpy 中的数据类型 intc 默认为 32 位?

示例:

np.intc(1).dtype
# dtype('int32')

同样:

type(np.intc(1))
# <type 'numpy.int32'>

但是:

import numpy.distutils.system_info as sysinfo
sysinfo.platform_bits
# 64

同样:

import platform
platform.architecture()
# ('64bit', 'WindowsPE')

操作系统:

Windows 10 Enterprise

python :

conda version : 4.4.10
conda-build version : 3.4.1
python version : 2.7.14.final.0
channel URLs : https://repo.continuum.io/pkgs/main/win-64
https://repo.continuum.io/pkgs/main/noarch
https://repo.continuum.io/pkgs/free/win-64
https://repo.continuum.io/pkgs/free/noarch
https://repo.continuum.io/pkgs/r/win-64
https://repo.continuum.io/pkgs/r/noarch
https://repo.continuum.io/pkgs/pro/win-64
https://repo.continuum.io/pkgs/pro/noarch
https://repo.continuum.io/pkgs/msys2/win-64
https://repo.continuum.io/pkgs/msys2/noarch
platform : win-64

最佳答案

np.intc 在用于构建运行时的编译器 ( see here ) 中被定义为 C 语言中大小为 int 的整数。在大多数现代编译器中,即使在 64 位工具链中,int 也被定义为 32 位 ( see here )。在您的情况下,您使用的是 Python 的 32 位编译,编译器生成将 int 定义为 32 以外的任何值的 32 位二进制文​​件的可能性非常低。

您可以使用如下程序检查特定编译器中 int 的大小:

#include  <stdio.h>

int main(void)
{
printf("int size: %d bits.\n", sizeof(int) * 8);
return 0;
}

您将看到大多数编译器都会生成一个显示以下内容的程序:

int size: 32 bits.

关于python - 为什么numpy中的数据类型 `intc`默认为32位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49880203/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com