Home › Fóruns › Fórum Machine Learning e Data Science com Python de A à Z › Atributos categóricos – OneHotEncoder
- Este tópico contém 7 respostas, 4 vozes e foi atualizado pela última vez 2 anos, 9 meses atrás por
Denny Ceccon.
- AutorPosts
- 30 de junho de 2022 às 00:49 #35747
Por volta do minuto 9, quando vou transformar a base de dados X_census para .toarray(), aparece esse erro:
x_census = onehotencoder_census.fit_transform(x_census).toarray()
—————————————————————————
AttributeError Traceback (most recent call last)
<ipython-input-115-18a2c3afda0e> in <module>()
—-> 1 x_census = onehotencoder_census.fit_transform(x_census).toarray()AttributeError: ‘numpy.ndarray’ object has no attribute ‘toarray’
30 de junho de 2022 às 09:58 #35757Olá Lucas, verifique se você declarou o nome da variável corretamente, pois o correto é X_census.
Fabio
30 de junho de 2022 às 11:29 #35759vou rever isso, porém no meu caso, fiz chamando de x_census mesmo.
8 de julho de 2022 às 11:52 #35850Resolvido
11 de julho de 2022 às 22:10 #35893Olá Lucas
Estou com esse mesmo problema, minhas variaves estão corretas, quanto eu executo tudo de uma vez funciona normal, se eu executar apenas esse comando da esse mesmo erro.
Pode me ajudar, por favor?
Obrigado!
12 de julho de 2022 às 09:14 #35896Marcos, eu desconfio que isto está acontecendo porque o resultado do método
fit_transform
já é um array.Tenta simplesmente retirar o método
toarray()
do final da chamada do código.12 de julho de 2022 às 11:14 #35897Olá Denny,
Obrigado pela resposta,
Agora que você falou que o resultado do método fit_transform já é um array, acredito que entendi o que esta acontecendo, vou tentar explicar:
Quando eu executo tudo ou apenas o código X_census = onehotencoder_census.fit_transform(X_census).toarray() pela primeira vez funciona normalmente, se na sequência eu tentar executar o código novamente aparece o tal erro:
AttributeError: ‘numpy.ndarray’ object has no attribute ‘toarray’
Agora veja só, se eu executar novamente o código de criação da variável X_census X_census = base_census.iloc[:,0:14].values
e novamente executar o código em questão ele funciona normalmente.
Conclusão
Na primeira vez que executo o código X_census = onehotencoder_census.fit_transform(X_census).toarray() ele altera a variável
X_ census e converte ela para um array, quando eu tento executar apenas o código novamente ele vai tentar transformar e converter a variável X_ census já transformada e convertida em array, ai então apresenta o erro.
- Esta resposta foi modificada 2 anos, 9 meses atrás por
Marcos Rogerio Leandro.
12 de julho de 2022 às 12:08 #35899É isso mesmo Marcos. Quando a gente atualiza uma variável, tem que tomar cuidado para criar ela de volta se quiser reexecutar alguma parte do código.
- Esta resposta foi modificada 2 anos, 9 meses atrás por
- AutorPosts
- Você deve fazer login para responder a este tópico.