相关疑难解决方法(0)

默认情况下,numpy数组dtype在Windows 10 64位机器中以int32形式出现

我在笔记本电脑上安装了Anaconda 3 64位,并在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
Run Code Online (Sandbox Code Playgroud)

这些命令的输出显示以下内容:

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')
Run Code Online (Sandbox Code Playgroud)

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

任何帮助表示赞赏.

python numpy spyder anaconda

15
推荐指数
3
解决办法
2996
查看次数

什么决定了numpy中int的大小?

它似乎不是处理器的"位数"(32对64),特别是对这篇文章的评论:

好答案.正如我在上面的评论中提到的,我能够在使用64位ARM处理器的Raspberry Pi 3上复制@ suzep136的问题.知道为什么在64位架构上会出现溢出问题吗?我唯一能想到的是lapack/blas是为32位内核编译的; 我想我通过apt-get安装了numpy. - nrlakin

它也不是C中int的大小,例如在我的机器上:

>>> import numpy, ctypes
>>> 
>>> ctypes.sizeof(ctypes.c_int)
4
>>> numpy.array([1]).dtype
dtype('int64')
Run Code Online (Sandbox Code Playgroud)

那么,它取决于什么?

编辑:还有另一位候选人,谢谢你们:

LAPACK在所有架构上使用32位整数 - ev-br

编辑:部分答案在这里.谢谢Goyo.我已经复制了它并使其成为CW,因此您可以添加更精细的点,例如PyPy或Jython中发生的事情.我也对这个选择是否有更深层次的原因感兴趣.

python numpy

10
推荐指数
1
解决办法
1374
查看次数

numpy.dot 对于大整数给出错误的答案

我正在研究一些线性代数的东西,并且根本不明白为什么numpy给出以下内容:

在此输入图像描述

我从mathematica得到的结果是

在此输入图像描述

编辑:如果您需要矩阵:

test = [[19722145, -21016468, 51417377],
        [-185674670, 298847128, -428429486],
        [289326728, -516012704, 691212936]]

A = [[9, 4, 1], [2, 0, 8], [-8, 8, -8]]
Run Code Online (Sandbox Code Playgroud)

python arrays numpy dot-product

5
推荐指数
1
解决办法
2493
查看次数

标签 统计

numpy ×3

python ×3

anaconda ×1

arrays ×1

dot-product ×1

spyder ×1