Python en Español

Tutorial para utilizar un arreglo en Python con NumPy

NumPy es un módulo / biblioteca de Python que se utiliza para cálculos científicos en Python. En este tutorial, aprenderás cómo realizar muchas operaciones en arreglos NumPy, como añadir, eliminar, ordenar y manipular elementos de muchas maneras.

NumPy proporciona un objeto el cual es un arreglo multidimensional y otras matrices derivadas, como matrices enmascaradas o matrices multidimensionales enmascaradas.


 

¿Por qué usar NumPy?

El módulo NumPy proporciona un objeto ndarray que podemos usar para realizar operaciones en una arreglo de cualquier dimensión. El ndarray significa arreglo de N dimensiones donde N es cualquier número. Eso significa que los arreglos NumPy puede ser de cualquier dimensión.

NumPy tiene una serie de ventajas sobre las listas de Python. Podemos realizar operaciones de alto rendimiento en los arreglos NumPy, tales como:

  1. Ordenar los miembros de un arreglo
  2. Operaciones matemáticas y lógicas.
  3. Funciones de entrada / salida
  4. Operaciones estadísticas y de álgebra lineal.

 

¿Cómo instalar NumPy?

Para instalar NumPy, necesitas Python y Pip en tu sistema.

Ejecuta el siguiente comando si estas con el sistema operativo Windows:

pip install numpy

Instalar NumPy

Ahora puedes importar NumPy en tu script de esta manera:

import numpy

NumPy array tutorial

 


Agregar un elemento al arreglo

Puedes agregar un elemento a un arreglo NumPy usando el método append () del módulo NumPy.

La sintaxis para añadir es la siguiente:

numpy.append(array, value, axis)

Los valores se agregarán al final del arreglo y se devolverá un nuevo ndarray con los valores nuevos y antiguos como se muestra en la imagen anterior.

El eje es un entero opcional a lo largo del cual se define cómo se mostrará el arreglo. Si no se especifica el eje, la estructura del arreglo se aplanará como se verá más adelante.

Considera el siguiente ejemplo donde primero se declara un arreglo y luego usamos el método para añadir más valores al arreglo:


La salida será como la que se muestra a continuación:

Agregar un elemento al arreglo

 

Añadir una columna

Podemos usar el método append () de NumPy para insertar una columna.

Considere el siguiente ejemplo donde creamos un arreglo bidimensional e insertamos dos columnas:


La salida será como se muestra a continuación:

Añadir una columna

Si no se usa el atributo de eje, la salida será de esta manera:

Eje sin atributo

Así es como se aplana la estructura de un arreglo.

En NumPy, también podemos usar el método insert () para insertar un elemento o columna. La diferencia entre el método insert () y el método append () es que podemos especificar en qué índice queremos agregar un elemento cuando usamos el método insert (), pero el método append () agrega un valor al final del arreglo.

Considere el siguiente ejemplo:


La salida será la siguiente:

Utilizando insert

Aquí el método insert () agrega el elemento en el índice 1. Recuerda que los índices de un arreglo comienzan desde 0.


Añadir una fila

En esta sección, usaremos el método append () para agregar una fila al arreglo. Es tan simple como agregar un elemento al arreglo. Considere el siguiente ejemplo:


Eliminar un elemento:

Añadir una fila


Eliminar un elemento

Puedes eliminar un elemento de un arreglo NumPy utilizando el método delete () del módulo NumPy:

Esto se demuestra en el siguiente ejemplo:


La salida es la siguiente:

Eliminar un elemento

En el ejemplo anterior, tenemos un arreglo con una sola dimensión única. El método delete () elimina el elemento en el índice 1 del arreglo.

Eliminar una fila

Del mismo modo, puedes eliminar una fila utilizando el método delete ().

Considere el siguiente ejemplo, donde hemos eliminado una fila de un arreglo bidimensional:


La salida será la siguiente:

Eliminar una fila

En el método delete (), primero asigna el arreglo y luego el índice del elemento que desea eliminar. En el ejemplo anterior, eliminamos el segundo elemento que tiene el índice de 1.

Comprobar si el arreglo NumPy está vacío

Podemos usar el método size que devuelve el número total de elementos en el arreglo.

En el siguiente ejemplo, tenemos una sentencia if que verifica si hay elementos en el arreglo usando ndarray.size donde ndarray es cualquier arreglo NumPy dado:


La salida es la siguiente:

Comprobar si el arreglo NumPy está vacío

En el código anterior, hay tres elementos, por lo que no está vacío y la condición devolverá el valor false.

Si no hay elementos, la condición if se cumplirá e imprimirá el mensaje empty.

Si nuestro arreglo es igual a:

a = numpy.array([])

La salida del código anterior será la siguiente:

Matriz NumPy vacía

 

Encontrar el índice de un valor

Para encontrar el índice de un valor, podemos usar el método where () del módulo NumPy como se muestra en el siguiente ejemplo:


La salida será la siguiente:

Encontrar el índice de un valor

El método where () también devolverá el tipo de dato. Si solo deseas obtener el índice, utiliza el siguiente código:


Entonces la salida será:

Usando el método where

 


División de arreglos con NumPy

La división de arreglos es el proceso de extracción de un subconjunto de una de un arreglo determinada. Puedes dividir un arreglo utilizando el operador de dos puntos (:) y especificar el inicio y el final del índice del arreglo, por ejemplo:

array[from:to]

Esto se resalta en el siguiente ejemplo:


Aquí extrajimos los elementos comenzando desde el índice 2 al índice 5. La salida será:

División de arreglos con NumPy

Si queremos extraer los últimos tres elementos. Podemos hacer esto usando una división negativa de la siguiente manera:


La salida será:

División negativa

 

Aplicar una función a todo los elementos de un arreglo

En el siguiente ejemplo, vamos a crear una función lambda en la que pasaremos a nuestro arreglo para aplicarla a todos los elementos:


La salida es la siguiente:

Aplicar una función a todo los elementos de un arreglo

En este ejemplo, se crea una función lambda que incrementa cada elemento en dos.

Longitud de un arreglo NumPy

Para obtener la longitud de un arreglo NumPy, puedes usar el atributo de size del módulo NumPy como se muestra en el siguiente ejemplo:


Este código generará el siguiente resultado:

Longitud de un arreglo NumPy

 

Crear un arreglo NumPy desde una lista

Las listas en Python son una serie de elementos encerrados entre corchetes.

Supongamos que tienes una lista como la siguiente:

l = [1, 2, 3, 4, 5]

Ahora para crear un arreglo a partir de esta lista, usaremos el método array () del módulo NumPy:


La salida será la siguiente:

Crear un arreglo NumPy desde una lista

De forma similar, utilizando el método array (), podemos crear un arreglo NumPy a partir de una tupla. Una tupla contiene una serie de elementos encerrados entre paréntesis de la siguiente manera:


La salida será:

Crear un arreglo NumPy desde una Tuple

 


Convertir un arreglo NumPy a una lista

Para convertir un arreglo en una lista, podemos usar el método tolist () del módulo NumPy.

Considera el siguiente código:


La salida será la siguiente:

Convertir un arreglo NumPy a una lista

En este código, simplemente llamamos al método tolist () que convierte el arreglo en una lista. Luego imprimimos la lista recién creada en la pantalla de salida.

Arreglo NumPy a CSV

Para exportar el arreglo a un archivo CSV, podemos usar el método savetxt () del módulo NumPy como se ilustra en el siguiente ejemplo:


Este código generará un archivo CSV en la ubicación donde se almacena nuestro archivo de código Python. También puedes especificar la ruta. Cuando ejecute el script, el archivo se generará así:

Archivo CSV

El contenido de este archivo será como el siguiente:

Contenido del archivo CSV

Puedes eliminar el relleno de ceros adicional de esta manera:

numpy.savetxt("myArray.csv", a,fmt='%.2f')

 

Ordenar arreglos NumPy

Puede ordenar el arreglo NumPy usando el método sort () del módulo NumPy:

La función sort () toma un eje opcional (un entero) que es -1 por defecto. El eje especifica de acuerdo a qué eje queremos ordenar el arreglo. -1 significa que el arreglo se ordenará según el último eje.

Considera el siguiente ejemplo:


En este ejemplo, llamamos al método sort () en la sentencia de impresión. El arreglo “a” se pasa a la función de ordenamiento. El resultado de esto será el siguiente:

Ordenar arreglos NumPy

 

Normalizar un arreglo

La normalización de un arreglo es el proceso de llevar los valores del arreglo a un rango definido. Por ejemplo, podemos decir que queremos normalizar un arreglo entre -1 y 1 y así sucesivamente.

La fórmula para la normalización es la siguiente:

x = (x xmin) / (xmax xmin)

Ahora aplicaremos esta fórmula a nuestro arreglo para normalizarlo. Para encontrar los elementos máximo y mínimo en la arreglo, usaremos los métodos max () y min () de NumPy respectivamente.


La salida será la siguiente:

Normalizar un arreglo

 

Indexación de arreglos

Los medios de indexación se refieren a un elemento del arreglo. En los siguientes ejemplos, también usamos la indexación en arreglos unidimensionales y bidimensionales:


La salida será la siguiente:

Indexación de arreglos

Ahora indexando con un arreglo bidimensional:


La salida será:

Indexación de arreglos multidimensional

El índice [1] [2] significa la segunda fila y la tercera columna (ya que la indexación comienza desde 0). Por lo tanto, obtenemos 9 en la pantalla de salida.

 

Anexar un arreglo NumPy a otro

Puedes agregar un arreglo NumPy a otro arreglo NumPy usando el método append ().

Considere el siguiente ejemplo:


La salida será la siguiente:

Anexar un arreglo NumPy a otro

En este ejemplo, se crea una arreglo NumPy “a” y luego se crea otro arreglo llamado “b”. Luego usamos el método append () y pasamos los dos arreglos. Debido a que el arreglo  “b” se pasa como segundo argumento, se agrega al final del arreglo “a”.

 

Como vimos, trabajar con arreglos de NumPy es muy simple. Los arreglos NumPy son muy esenciales cuando se trabaja con la mayoría de las bibliotecas de machine learning. Entonces, podemos decir que NumPy es la puerta a la inteligencia artificial.

Mokhtar Ebrahim
Estoy trabajando como administrador de sistemas Linux desde 2010. Soy responsable de mantener, proteger y solucionar problemas de servidores Linux para múltiples clientes de todo el mundo. Me encanta escribir guiones de shell y Python para automatizar mi trabajo.

Deja un comentario

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