NumPy para usuarios de Matlab

NumPy y Matlab son muy similares entre sí, ambos están hechos para cálculos matemáticos y científicos. Pero aún hay muchas diferencias, numPy está hecho para hacer cálculos científicos con python usando arrays, mientras que Matlab usa arrays. Este artículo nos dará una idea profunda sobre las similitudes y diferencias entre NumPy y Matlab y cómo un usuario de Matlab puede volverse experto en NumPy.

NumPy usa arreglos y arrays. NumPy proporciona un tipo especial de array, numpy.matrix y es una subclase de ndarray (es decir, una array de n dimensiones). El tipo de datos básico de NumPy son arrays n dimensionales en las que las operaciones se realizan por elementos. uno tiene que usar funciones específicas para realizar operaciones de álgebra lineal en NumPy. Mientras que el tipo de datos básico de Matlab es una array multidimensional de números de punto flotante de doble precisión. Las operaciones en instancias de tales tipos de datos se realizan como arrays en álgebra lineal, la mayoría de las funciones integradas en Matlab toman y devuelven este tipo de arrays. NumPy fue diseñado para Python, que es un lenguaje de programación de propósito general y utiliza indexación basada en 0 (cero). Si bien el lenguaje de secuencias de comandos de Matlab se crea para realizar operaciones de álgebra lineal, la sintaxis de Matlab para la manipulación de arrays es más compleja que la de NumPy. También Matlab usa indexación basada en 1 (uno), significa que el primer elemento de la array está indexado en 1. 

De esta charla básica, surge la pregunta ¿cuál debemos usar arreglos o arrays?

NumPy proporciona tanto la clase de array como la clase de array, la clase de array proporciona cálculos básicos de array n dimensional, mientras que la clase de array proporciona cálculos de álgebra lineal específicamente. Algunas de las diferencias clave entre los objetos de array y los objetos de array son:

  • Manejo de arrays de alta dimensión: –
    • Los objetos de array pueden tener más de dos dimensiones mientras que
    • Los objetos Matrix tienen solo dos dimensiones.
  • Manejo de vectores (arrays unidimensionales): –
    • En los objetos de array, las arrays unidimensionales siempre tendrán una sola dimensión. Para arreglos, N*1 y 1*N son arreglos bidimensionales, no de una sola dimensión. Las operaciones de array en una array unidimensional siempre devolverán la propia array 1-D.
    • Mientras que en la array, la array de una sola dimensión de tamaño N se trata y se convierte de forma predeterminada en una array N * 1 o 1 * N. Cualquier operación en él siempre devolverá una array bidimensional.
  • Operadores ‘*’ y ‘@’ :-
    • En los arreglos, el operador ‘ * ‘ se usa para multiplicaciones de elementos o usando la función multiplicar() y ‘ @ ‘ se usa para la multiplicación de arrays o usando la función dot().
    • En array, la multiplicación de array se realiza usando el operador ‘ * ‘, y para la multiplicación inteligente de elementos, debe usar la función multiplicar().
  • Constructor:-
    • En arrays, los constructores se inicializan con secuencias de python. por ejemplo, array ([[1, 2, 3], [4, 5, 6]])
    • En array, el constructor toma una string como inicializador. por ejemplo, array («[1 2 3; 4 5 6]»)

Algunos equivalentes comunes de Matlab para NumPy:

Para uso general:

matlab NumPy Explicación
tipo (función) source(func) o func??(para python) imprime la fuente de la función
un | | b  a o B Operador lógico OR
eps np.espaciado(1) Distancia entre 1 y el número de punto flotante más cercano
1 * yo, 1 * j, 1i, 1j 1j Números complejos
ayuda (función) info(func) o ayuda(func) (para python) Proporciona para la función func dada
a & & b a y B Operador lógico Y

Para álgebra lineal:

matlab NumPy Explicación
talla M) forma(a) o a.forma(a) Devuelve el tamaño de la array.
[1 2 3; 7 8 9] array ([[1, 2, 3], [7, 8, 9]]) array 2×3
arreglar) m[-1] Último elemento en array 1xn 
m(3, 4) m[3][4] Elemento de acceso en 3ª fila, 4º elemento
m(2 : ) m[1] o m[1, : ]

Toda la segunda fila de array, como primer elemento de matlab   

está indexado en 1 y el de numpy está indexado en 0.

m(1 : 5, : ) m[0 : 5] o m[ : 5] devuelve las primeras cinco filas de la array m
metro.’ m.transpose() o aT Transpuesta de array m
metro’ m.conj().transpose() o m.conj().T Transpuesta conjugada de la array m
m.^3 m**3 Elemento exponente sabio de la array m.
m .* norte m * n Multiplicación de array sabia de elementos
m * norte m @ n Multiplicación de arrays (operación algebraica)
a ./b un / b División sabia del elemento de la array m y n.
encontrar (m > 2) distinto de cero (m > 2) Encuentra los índices cuyos elementos son mayores que 2
m( : ) = 1 metro[ : ] = 1 Establecer todos los elementos de la array m a 1
un = segundo a = b.copia()

Asigne b a a directamente en Matlab mientras numpy asigna 

a través de la referencia.

ceros (2, 4) ceros ((2, 4))

array bidimensional con 2 filas y 4 columnas completas 

con todos los elementos como 0 (cero).

ceros (1, 3, 5) ceros ((1, 3, 5)) Array tridimensional de 1x3x5 con todos los elementos cero.
rand(2, 4) randomn.rand(2, 4) Array bidimensional de 2 × 4 con elementos aleatorios.
unos(2, 4) unos((2, 4))

Array bidimensional de 2 × 4 con todos los elementos flotantes 

punto 1.

ojo(4) ojo(4) devuelve array identidad 4×4
máx(máximo(m)) máx. (m) devuelve el elemento máximo presente en la array m
un | b lógico_o(a, b) operación OR lógica elemento por elemento
a & b lógica_y(a, b) operación lógica AND elemento por elemento
bitor(a, b) un | b Operador OR lógico bit a bit de las arrays a y b
bit y (a, b) a & b Operador AND lógico bit a bit de las arrays a y b
ordenar(m) ordenar (m) o m. ordenar() ordenar la array m
sift(m) sift(m) Transformada de Fourier de la array m.
a\b

linalg.solve(a, b) si a es una array cuadrada

más, linalg.lstsq(a, b)

resuelve la ecuación ax = b, para x
inversión(m) linalg.inv(m) devuelve la inversa de la array cuadrada m
pinv(m) linalg.pinv(m) devuelve pseudo inversa de la array m
máx(m, n) máximo (m, n)

devuelve el elemento máximo de cada par comparando 

m y n elemento por elemento.

máx. (m) m.máx(0)

devuelve el elemento máximo de cada columna de 

array m.

espaciolineal(a, b, m) espaciolin(a,, b, m)

devuelve m elementos igualmente espaciados entre a y b 

(ambos inclusive)

Publicación traducida automáticamente

Artículo escrito por amit_mangal_ y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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