为np.array指定默认dtype(1.)

Yar*_*tov 3 python numpy

有没有办法指定与构造类似的默认dtype np.array(1.)

特别是我想np.array(1.)成为np.float32np.array(1)将来np.int32.相反,我得到np.float64np.int64

jak*_*vdp 5

默认值取决于您的系统.在64位系统上,默认类型为64位.在32位系统上,默认类型为32位.无法使用不同的系统C标头更改重新编译numpy的默认短缺.

您当然可以明确指定dtypes,例如

>>> x = np.array(1, dtype='int32')
Run Code Online (Sandbox Code Playgroud)

编辑:如下面提到的kazemakase,上面只适用于int32/int64.在最近的numpy版本中,无论系统如何,浮点的默认值都是float64.

  • 好吧,看起来 numpy 还没有为 GPU 时代做好准备。现在的系统是 64 位的,但 GPU 计算主要是在 32 位上完成的,所以我们最终会通过将默认的 numpy 类型传播到 GPU 来做次优的事情 (3认同)