Saltar al contenido

La mejor manera de inicializar y llenar un numpy array?

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 nanp.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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *