Te sugerimos que pruebes esta resolución en un entorno controlado antes de pasarlo a producción, un saludo.
Solución:
También puedes probar:
In [79]: np.full(3, np.nan)
Out[79]: array([ nan, nan, nan])
El documento pertinente:
Definition: np.full(shape, fill_value, dtype=None, order='C')
Docstring:
Return a new array of given shape and type, filled with `fill_value`.
Aunque creo que esto podría estar disponible solo en numpy 1.8+
np.fill
modifica el array en su lugar, y regresa None
. Por lo tanto, si está asignando el resultado a un nombre, obtiene un valor de None
.
Una alternativa es utilizar una expresión que devuelva nan
p.ej:
a = np.empty(3) * np.nan
Encuentro esto fácil de recordar:
numpy.array([numpy.nan]*3)
Por curiosidad, lo cronometré, y tanto la respuesta de @JoshAdel como la respuesta de @shx2 son mucho más rápidas que la mía con matrices grandes.
In [34]: %timeit -n10000 numpy.array([numpy.nan]*10000)
10000 loops, best of 3: 273 µs per loop
In [35]: %timeit -n10000 numpy.empty(10000)* numpy.nan
10000 loops, best of 3: 6.5 µs per loop
In [36]: %timeit -n10000 numpy.full(10000, numpy.nan)
10000 loops, best of 3: 5.42 µs per loop
Aquí tienes las reseñas y calificaciones
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)