Python: Haciendo numpy por defecto a float32

¿Hay alguna forma clara de configurar numpy para usar los valores de float32 en lugar de float64 globalmente?

No que yo sepa. O bien, debe especificar el tipo de dtype explícitamente cuando llama al constructor para cualquier matriz, o convertir una matriz a float32 (use el método ndarray.astype) antes de pasarlo a su código de GPU (¿supongo que esto es a lo que se refiere la pregunta? ). Si lo que realmente le preocupa es el caso de la GPU, prefiero lo último: puede ser muy molesto tratar de mantener todo en una sola precisión sin una comprensión muy completa de las reglas de transmisión de números y el código diseñado con mucho cuidado.

Otra alternativa podría ser crear sus propios métodos que sobrecarguen los constructores de numpy estándar (por lo tanto, numpy.zeros, numpy.ones, numpy.empty). Eso debería estar bastante cerca de mantener todo en float32.

Esta pregunta apareció en el rastreador de problemas NumPy. La respuesta es:

No hay, lo siento. Y me temo que es poco probable que agreguemos tal cosa [.]

Para cada función se puede sobrecargar por:

 def array(*args, **kwargs): kwargs.setdefault("dtype", np.float32) return np.array(*args, **kwargs) 

Según lo publicado por njsmith en github