numpy 数组 dtype 在 Windows 10 64 位机器中默认为 int32

2022-01-10 00:00:00 python numpy spyder anaconda

问题描述

我在笔记本电脑上安装了 Anaconda 3 64 位,并在 Spyder 中编写了以下代码:

I have installed Anaconda 3 64 bit on my laptop and written the following code in Spyder:

import numpy.distutils.system_info as sysinfo
import numpy as np
import platform

sysinfo.platform_bits 
platform.architecture()

my_array = np.array([0,1,2,3])
my_array.dtype

这些命令的输出显示如下:

Output of these commands show the following:

sysinfo.platform_bits 
Out[31]: 64

platform.architecture()
Out[32]: ('64bit', 'WindowsPE')

my_array = np.array([0,1,2,3])
my_array.dtype
Out[33]: dtype('int32')

我的问题是,即使我的系统是 64 位的,为什么默认数组类型是 int32 而不是 int64?

My question is that even though my system is 64bit, why by default the array type is int32 instead of int64?

感谢任何帮助.


解决方案

默认整数类型np.int_是C long:

Default integer type np.int_ is C long:

http://docs.scipy.org/doc/numpy-1.10.1/user/basics.types.html

但是 C long 在 win64 中是 int32.

But C long is int32 in win64.

https://msdn.microsoft.com/en-us/library/9c3yd98k.aspx

这有点奇怪.

相关文章