• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad
    • Tiendas afiliadas
      • AliExpress
      • Amazon
      • Banggood
      • GeekBuying
      • Lenovo

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • Python
  • Pandas
  • NumPy
  • Matlab
  • Julia
  • JavaScript
  • Excel

Numpy básico: aplicar una función sobre una fila o columna de una Array de Numpy

septiembre 25, 2019 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 3 minutos

Al tener una matriz de Numpy en memoria puede darse la situación de que sea necesario calcular una función sobre los elementos de una fila o columnas. Por ejemplo, algo tan básico como sumar todos los elementos por columna. En estas situaciones se puede utilizar la función np.apply_along_axis() , con la que se puede aplicar una función sobre una fila o columna de una Array de Numpy.

Para trabajar en el resto de la entrada se va a crear una matriz de 3 por 3 con la que se podrá probar lo trucos explicados.

import numpy as np

matrix = np.arange(1, 10).reshape(3,3)
matrix
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

La función np.apply_along_axis()

La función np.apply_along_axis() permite aplicar una función sobre una de las dimisiones de un Array de Numpy. Por lo que es una herramienta con muchas posibilidades. La función tiene tres parámetros, en el primero se indica la función que se desea aplicar, en la segunda el eje sobre el que se desea aplicar la función y finalmente el objeto de Numpy. Obteniéndose como salida de la función un Array de Numpy con un eje menos que el original.

Por ejemplo, para sumar las columnas de una matriz se puede escribir en Python la siguiente línea de código.

np.apply_along_axis(sum, 0, matrix)
array([12, 15, 18])

Es fácil comprobar que el resultado es correcto. Como se puede ver en el ejemplo el eje se indica de forma numérica, en el caso de las matrices para operar sobre las columnas se utiliza 0 y 1 para operar sobre las filas. Así para sumar sobre una las columnas solamente se tiene que cambiar el segundo parámetro.

Publicidad


np.apply_along_axis(sum, 1, matrix)
array([ 6, 15, 24])

Las funciones a utilizar en np.apply_along_axis()

Por lo visto np.apply_along_axis() es una herramienta muy interesante. Pero ¿qué funciones se pueden utilizar como entrada? Se puede utilizar cualquier función de Python que admite como entrada un vector unidimensional y devuelva un escalar. Incluyente tanto las funciones nativas del lenguaje como cualquier que se puede escribir. Por lo que se pueden utilizar la mayoría de las funciones estadísticas para obtener la media, la desviación estándar, los máximos o mínimos, etc.

Utilizar np.apply_along_axis() con otros tipos de objetos

Otro punto importante es que, en el caso de tener una matriz en una lista de listas de Python, no es necesario convertir esta en un Array de Numpy antes de poder trabajar con ella. np.apply_along_axis() acepta como entrada cualquier tipo de objeto que se puede convertir a un Array de Numpy, realizando la conversión de tipos internamente.

np.apply_along_axis(sum, 1, [[1,2],[2,3]])
array([3, 5])

Conclusiones

Cuando se tiene una matriz y es necesario obtener los estadísticos de las filas o columnas la función np.apply_along_axis() es de gran ayudar. Ya que permite aplicar una función sobre una fila o columna de una Array de Numpy o cualquier otro objeto que se pueda convertir a este. Evitando de este modo la necesidad de usar bucles o el método map que pueden ser un poco más complejos para principiantes.

Imágenes: Pixabay (Marit Welker)

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 0 / 5. Votos emitidos: 0

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

Publicidad


¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicaciones relacionadas

  • pandas
    Pandas: Aplicar una función a las filas o columnas de un…
  • NumPy
    NumPy: ¿Qué es una matriz estructurada de NumPy y cómo…
  • Utilizar R desde Python con rpy2
    Utilizar R desde Python con rpy2
  • Sistema de ecuaciones
    Sistemas de ecuaciones lineales con numpy
  • NumPy
    NumPy: Crear matrices vacías en NumPy y adjuntar filas o…
  • NumPy: Comprobar todos los valores de una matriz de NumPy
    NumPy: Comprobar todos los valores de una matriz de NumPy

Publicado en: Python Etiquetado como: NumPy

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

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

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Publicidad




Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Facebook
  • GitHub
  • Instagram
  • Pinterest
  • RSS
  • Twitter
  • Tumblr
  • YouTube

Publicidad

Entradas recientes

El método de Hare-Niemeyer y su implementación en Python

septiembre 29, 2023 Por Daniel Rodríguez

Redimensionar una partición de disco LVM con espacio no asignado en Linux

septiembre 27, 2023 Por Daniel Rodríguez

¿Cómo saber la versión de Pandas o cualquier otra librería en Python?

septiembre 25, 2023 Por Daniel Rodríguez

Publicidad

Es tendencia

  • ¿Cómo cambiar el nombre de las columnas en Pandas? publicado el mayo 6, 2019 | en Python
  • Seleccionar filas y columnas en Pandas con iloc y loc publicado el junio 21, 2019 | en Python
  • pandas Pandas: Cambiar los tipos de datos en los DataFrames publicado el julio 15, 2021 | en Python
  • Numpy básico: valores mínimos y máximos en arrays Numpy publicado el octubre 23, 2019 | en Python
  • Unir y combinar dataframes con pandas en Python publicado el septiembre 10, 2018 | en Python

Publicidad

Lo mejor valorado

4.9 (22)

Seleccionar filas y columnas en Pandas con iloc y loc

4.7 (12)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.6 (15)

Archivos JSON con Python: lectura y escritura

4.5 (10)

Diferencias entre var y let en JavaScript

4.3 (12)

Ordenación de diccionarios en Python mediante clave o valor

Publicidad

Comentarios recientes

  • Daniel Rodríguez en ¿Cómo eliminar columnas y filas en un dataframe pandas?
  • Miguel en ¿Cómo eliminar columnas y filas en un dataframe pandas?
  • alberto en Resolver problema de credenciales en Bitbucket
  • Pablo en Aplicar el método D’Hondt en Excel
  • Agapito en Creación de un EXE desde un archivo Python en Windows

Publicidad

Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2023 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto