TypeError: only integer scalar arrays can be converted to a scalar index

Home Fóruns Fórum Deep Learning com Python de A a Z: O Curso Completo TypeError: only integer scalar arrays can be converted to a scalar index

Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #38924
    Renato
    Participante

    posicoes = df.iloc[:, 2:17].values
    Y = df.iloc[:, [1]].values
    Y[Y == ‘segunda-feira’] = 0
    Y[Y == ‘terça-feira’] = 1
    Y[Y == ‘quarta-feira’] = 2
    Y[Y == ‘quinta-feira’] = 3
    Y[Y == ‘sexta-feira’] = 4
    Y[Y == ‘sábado’] = 5
    Y[Y == ‘domingo’] = 6
    Y = Y.astype(‘int64’)
    normalizador = MinMaxScaler(feature_range=(0,1))
    posicoes = normalizador.fit_transform(posicoes)

    som = MiniSom(x = 28, y = 28, input_len = 15, random_seed=0)
    som.random_weights_init(posicoes)
    som.train_random(data = posicoes, num_iteration = 1000)
    som._activation_map

    pcolor(som.distance_map().T)
    colorbar()
    markers = [‘o’,’s’,’v’,’>’,'<‘,’^’,’1′]
    color = [‘b’, ‘g’, ‘r’, ‘c’, ‘m’, ‘y’,’k’]

    for i, x in enumerate(posicoes):
    w = som.winner(x)
    plot(w[0] + 0.5, w[1] +0.5,markers[Y[i]], markerfacecolor = ‘None’,
    markersize = 10, markeredgecolor = color[Y[i]], markeredgewidth = 2)

     

    Não consegui aplicar o markes [Y[i]] pois aparentemente ele não está como integer scalar. como resolvo?

    #38940
    Renato
    Participante

    Problema resolvido!

    Apesar de na aula não ter precisado, basicamente eu resolvi endereçando a coluna do Y no código:

    for i, x in enumerate(posicoes):
    w = som.winner(x)
    plot(w[0] + 0.5, w[1] +0.5,markers[Y[i]], markerfacecolor = ‘None’,
    markersize = 10, markeredgecolor = color[Y[i]], markeredgewidth = 2)w

    na parte [Y[i]] ele não estava considerando um número inteiro, então eu coloquei [Y[i,0]] sendo 0 a coluna a qual eu estava buscando o dado.

    #38957
    Fábio Spak
    Participante

    Olá Renato, que bom que deu certo 😉

    Fabio

Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Você deve fazer login para responder a este tópico.