¿Cómo puedo crear una identidad matriz con numpy? ¿Existe una sintaxis más simple queCómo crear una matriz de identidad con numpy
numpy.matrix(numpy.identity(n))
¿Cómo puedo crear una identidad matriz con numpy? ¿Existe una sintaxis más simple queCómo crear una matriz de identidad con numpy
numpy.matrix(numpy.identity(n))
Aquí hay una sintaxis más simple:
np.matlib.identity(n)
Y aquí es una sintaxis aún más simple que corre mucho más rápido:
In [1]: n = 1000
In [2]: timeit np.matlib.identity(n)
100 loops, best of 3: 8.78 ms per loop
In [3]: timeit np.matlib.eye(n)
1000 loops, best of 3: 695 us per loop
no creo que hay una solución más simple . Puede hacerlo ligeramente más eficiente , sin embargo:
numpy.matrix(numpy.identity(n), copy=False)
Esto evita innecesariamente la copia de los datos.
nunca he utilizado 'np.identity', ojo siempre se utiliza .. ¿sabes lo que es la diferencia entre' np.eye' y éste? – wim
@wim: No hay diferencia. 'numpy.eye()' es un poco más flexible. La interfaz de NumPy no está muy optimizada y existen muchas funciones con funcionalidad superpuesta. –
@wim: de acuerdo con [docs] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.eye.html) 'np.eye' es como' np.identity' pero con funcionalidad. Puede especificar el tamaño de columna y cambiar la diagonal. –
¿necesitas usar 'matlib'? no puedes hacer 'np.eye (n)'? 'matlib' produce específicamente matrices, a diferencia de las funciones numpy" normales "que producen matrices numpy. –
Según la documentación, parece que np.eye no crea necesariamente matrices cuadradas. En cuanto a la ganancia de rendimiento con np.matlib.eye, no estoy seguro. – hlin117