una tutorial transpuesta sumar multiplicar matriz matrices llenar espaƱol elementos como columnas array agregar python numpy normalize

tutorial - sumar columnas de una matriz python



Normalizar columnas numpy array en python (2)

Si entiendo correctamente, lo que quiere hacer es dividir por el valor máximo en cada columna. Puedes hacer esto fácilmente usando transmisión .

Comenzando con su matriz de ejemplo:

import numpy as np x = np.array([[1000, 10, 0.5], [ 765, 5, 0.35], [ 800, 7, 0.09]]) x_normed = x / x.max(axis=0) print(x_normed) # [[ 1. 1. 1. ] # [ 0.765 0.5 0.7 ] # [ 0.8 0.7 0.18 ]]

x.max(0) toma el máximo sobre la dimensión 0 (es decir, filas). Esto le da un vector de tamaño (ncols,) contiene el valor máximo en cada columna. A continuación, puede dividir x por este vector para normalizar sus valores de modo que el valor máximo en cada columna se escale a 1.

Si x contiene valores negativos, primero debe restar el mínimo:

x_normed = (x - x.min(0)) / x.ptp(0)

Aquí, x.ptp(0) devuelve el "pico a pico" (es decir, el rango, max - min) a lo largo del eje 0. Esta normalización también garantiza que el valor mínimo en cada columna será 0.

Tengo una matriz numpy donde cada celda de una fila específica representa un valor para una característica. Los guardo en una matriz 100 * 4.

A B C 1000 10 0.5 765 5 0.35 800 7 0.09

¿Alguna idea de cómo puedo normalizar las filas de este numpy.array donde cada valor está entre 0 y 1?

Mi resultado deseado es:

A B C 1 1 1 0.765 0.5 0.7 0.8 0.7 0.18(which is 0.09/0.5)

Gracias por adelantado :)


Puede usar sklearn.preprocessing:

from sklearn.preprocessing import normalize data = np.array([ [1000, 10, 0.5], [765, 5, 0.35], [800, 7, 0.09], ]) data = normalize(data, axis=0, norm=''max'') print(data) >>[[ 1. 1. 1. ] [ 0.765 0.5 0.7 ] [ 0.8 0.7 0.18 ]]