1
resposta

Minha solução

Pelo que pude ver tem uma galera que parece estar ignorando o fato da primeira coluna ser texto, copiei alguns códigos das soluções apresentadas e deu erro...

Eu cheguei na seguinte soluçao, sem necessariamente ter que retirar a coluna de texto e ignorando a dica de qual linha uma determinada fruta começa e outra termina. Porque no dia a dia não funciona exatamente assim.

Entao fica a dica de como filtrar os dados através de uma coluna descritiva dentro do objeto do numpy

Primeiro na loadtext adicione o dtype=object, essa forma você não receberá nenhum erro por estar carregando texto

Depois, fiz essa etapa em duas partes:

A primeira pego a info de peso com o descritivo da fruta e depois a mesma coisa com diametro.

Depois eu separo o peso e diametro de cada fruta fazendo uma seleção pela primeira coluna do array

A sacada final é que como passado o dtype como object no inicio se tentarmos plotar um grafico vai ficar todo zuado, com isso na chamada da função plot, passamos apenas a coluna dos dados que queremos já fazendo o cast para float.

import numpy as np
import matplotlib.pyplot as plt
#c:\Users\leodo\OneDrive\Documentos\python_portfolio\ALURA_PYT_DSC\

url = 'https://raw.githubusercontent.com/allanspadini/numpy/dados/citrus.csv'
dado = np.loadtxt(url, delimiter=',',skiprows=1,dtype=object)
diametro = dado[:,:2]
peso = dado[:,[0,2]]
peso_laranja = peso[peso[:,0] =='orange']
peso_toranja = peso[peso[:,0] =='grapefruit']
diametro_laranja = diametro[diametro[:,0] =='orange']
diametro_toranja = diametro[diametro[:,0] =='grapefruit']


plt.plot(diametro_laranja[:,1].astype(float),peso_laranja[:,1].astype(float))
plt.plot(diametro_toranja[:,1].astype(float),peso_toranja[:,1].astype(float))
plt.show()

1 resposta

Ei, Leonardo! Tudo bem?

Seu cuidado em lidar com a primeira coluna descritiva sem descartá-la é bem interessante! Essa estratégia reflete bem a realidade de dados mais complexos, onde as colunas com texto podem trazer informações relevantes para as análises.

Recomendo explorar o método np.unique para verificar rapidamente quais categorias existem em uma coluna descritiva. Veja este exemplo:

 
import numpy as np

dados = np.array([
    ['laranja', '10'],
    ['toranja', '15'],
    ['laranja', '12']
])

frutas = np.unique(dados[:, 0])
print(frutas)

Esse código mostra quais frutas estão presentes na primeira coluna do array.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!