Last active
October 26, 2016 01:49
-
-
Save felipessalvatore/a0a23f11be877e64de16c9e33987f7f0 to your computer and use it in GitHub Desktop.
Transform matrix in lists and classes in one hot encoding
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#ARRAY TRANSFORMATION | |
import numpy as np | |
#o melhor modo de transformar uma lista de matrizes n x n | |
# em uma lista de listas de tamanho n*n eh | |
def reformat(lista,n): | |
lista = lista.reshape((-1, n*n)).astype(np.float32) | |
return lista | |
ex1 = np.eye(2) | |
ex2 = np.eye(2) +ex1*2 | |
ex = np.array([ex1,ex2]) | |
re = reformat(ex,2) | |
print(ex) | |
print(' ') | |
print(re) | |
print(' ') | |
print('-----------------------------------------') | |
print(' ') | |
#para one-hot-encoding temos uma lista de classes 0,1,2,3, ... n | |
#e temos que transformar cada classe num array de tamanho n | |
#que tenha 1 numa posicao e 0 nas outras. Um modo rapido de fazer eh: | |
exemplo_classes = np.array([0,1,2,3,4,5,6]) | |
size = 7 | |
quasi_one_hot = (np.arange(size) == exemplo_classes[:,None]) | |
print(quasi_one_hot) | |
#para cada i em exemplo_classes vamos ter uma array de tamanho size | |
#que tem o valor True na posicao i e False no resto. Para transformar | |
#em um vetor de numeros basta fazer | |
one_hot = quasi_one_hot.astype(np.float32) | |
print(' ') | |
print(one_hot) | |
#com arrays podemos criar arrays boleanas com == | |
a = np.array([0,1,2,3,4,5,6]) | |
b = np.array([0,1,2,3,4,5,55]) | |
c = (a==b) | |
#podemos comparar dois arrays em relacao a posicao do maior argumento | |
a1 = np.arange(6).reshape(2,3) | |
b1 = np.arange(1,7).reshape(2,3) | |
print(' ') | |
print(np.argmax(a1) == np.argmax(b1)) | |
print(np.argmax(a1,0) == np.argmax(b1,0)) | |
print(np.argmax(a1,1) == np.argmax(b1,1)) | |
print(' ') | |
#numpy.argmax(a, axis=None, out=None)[source] | |
#quando axis=0 a funcao retorna os a posicao | |
#do maior valor para cada coluna | |
#quando axis=1 a funcao retorna os a posicao | |
#do maior valor para cada linha |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment