将numpy数组运算符保留在np.32中

将numpy数组运算符保留在np.32中,numpy,precision,Numpy,Precision,将float32矩阵除以int32矩阵得到float64矩阵。现在我要做什么 a = np.random.random((512,512,3)).astype(np.float32) b = np.ones((512,512,1), dtype=np.int32) c = a / b c.dtype >> dtype('float64') 这是CPU的额外工作。我有没有办法避免最后的转换并告诉numpy用float32做这项工作?您必须使用np.divide()的out参数 在N

将float32矩阵除以int32矩阵得到float64矩阵。现在我要做什么

a = np.random.random((512,512,3)).astype(np.float32)
b = np.ones((512,512,1), dtype=np.int32)
c = a / b
c.dtype

>> dtype('float64')

这是CPU的额外工作。我有没有办法避免最后的转换并告诉numpy用float32做这项工作?

您必须使用
np.divide()
out
参数

在NUMPY1.6中,您将能够执行
c=np.divide(a,b,dtype=np.float32)

return c.astype(np.float32)
[~/scratch]
|1> a = np.random.random((512,512,3)).astype(np.float32)

[~/scratch]
|2> b = np.ones((512,512,1), dtype=np.int32)

[~/scratch]
|3> c = np.empty_like(a)

[~/scratch]
|4> c = np.divide(a, b, c)

[~/scratch]
|5> c.dtype
dtype('float32')