Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
10
respostas

Como imprimir apenas a primeira coluna de um dataset com o numpy?

Como imprimir apenas a primeira coluna de um dataset com o numpy?

Meu código:

import numpy as np

data = np.genfromtxt("iris.data",delimiter = ",",usecols=(0,1,2,3))
print(data)

Meu dataset (parte dele):

5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
4.6,3.1,1.5,0.2,Iris-setosa
5.0,3.6,1.4,0.2,Iris-setosa
5.4,3.9,1.7,0.4,Iris-setosa
4.6,3.4,1.4,0.3,Iris-setosa
5.0,3.4,1.5,0.2,Iris-setosa
4.4,2.9,1.4,0.2,Iris-setosa
4.9,3.1,1.5,0.1,Iris-setosa
5.4,3.7,1.5,0.2,Iris-setosa
4.8,3.4,1.6,0.2,Iris-setosa
4.8,3.0,1.4,0.1,Iris-setosa
4.3,3.0,1.1,0.1,Iris-setosa
5.8,4.0,1.2,0.2,Iris-setosa
5.7,4.4,1.5,0.4,Iris-setosa
5.4,3.9,1.3,0.4,Iris-setosa
5.1,3.5,1.4,0.3,Iris-setosa
5.7,3.8,1.7,0.3,Iris-setosa
5.1,3.8,1.5,0.3,Iris-setosa
5.4,3.4,1.7,0.2,Iris-setosa
5.1,3.7,1.5,0.4,Iris-setosa
4.6,3.6,1.0,0.2,Iris-setosa
5.1,3.3,1.7,0.5,Iris-setosa
4.8,3.4,1.9,0.2,Iris-setosa
5.0,3.0,1.6,0.2,Iris-setosa
5.0,3.4,1.6,0.4,Iris-setosa
5.2,3.5,1.5,0.2,Iris-setosa
5.2,3.4,1.4,0.2,Iris-setosa
4.7,3.2,1.6,0.2,Iris-setosa
4.8,3.1,1.6,0.2,Iris-setosa
5.4,3.4,1.5,0.4,Iris-setosa
5.2,4.1,1.5,0.1,Iris-setosa
5.5,4.2,1.4,0.2,Iris-setosa
4.9,3.1,1.5,0.1,Iris-setosa
5.0,3.2,1.2,0.2,Iris-setosa
5.5,3.5,1.3,0.2,Iris-setosa
4.9,3.1,1.5,0.1,Iris-setosa
4.4,3.0,1.3,0.2,Iris-setosa
5.1,3.4,1.5,0.2,Iris-setosa
5.0,3.5,1.3,0.3,Iris-setosa
4.5,2.3,1.3,0.3,Iris-setosa
4.4,3.2,1.3,0.2,Iris-setosa

Gostaria de pegar apenas a primeira coluna do dataset inteiro. Como fazer com o numpy?

10 respostas

Tenta assim:

data.index(1)

@Marcos Gonçalves dos Santos:

Com data.index(1):

AttributeError: 'numpy.ndarray' object has no attribute 'index'

Edson, slicing e indexação normais não funciona?

print(data[0])

@Yan Orestes:

print(data[0])

imprimiu:

[5.1 3.5 1.4 0.2]

Como seria o slice?

Eu gostaria de imprimir a primeira coluna do dataset inteira. Algo como:

[5.1 4.9 4.7 4.6 5.  5.4 4.6 5.  4.4 4.9 5.4 4.8 4.8 4.3 5.8 5.7 5.4 5.1
 5.7 5.1 5.4 5.1 4.6 5.1 4.8 5.  5.  5.2 5.2 4.7 4.8 5.4 5.2 5.5 4.9 5.
 5.5 4.9 4.4 5.1 5.  4.5 4.4 5.  5.1 4.8 5.1 4.6 5.3 5. ]

Ahh, me desculpe, me confundi! Você quer a primeira coluna de todas as linhas, não a primeira linha, certo?

Sinceramente, não sei se o numpy dá um auxílio para isso propriamente, mas a princípio creio que não. O jeito é fazer um loop for por todas as linhas da array e dentro desse loop imprimir apenas a primeira coluna. Algo mais ou menos assim:

for linha in data:
    print linha[0]

Isso implica que cada linha é uma lista. É isso mesmo?

O código que funcionou foi :

print(f"As 50 primeiras: \n{data[:50,0]}")

Mas, sinceramente, não entendi o slice...

Edson, sua dúvida é sobre o que significa esse termo? Ou sobre o que foi feito no código que você mandou?

@Yan Orestes:

Não entendi o :

data[:50,0]

Poderia, por favor, explicar?

solução!

O : no começo indica que você quer pegar os valores do começo. O 50 que os valores devem ir até a posição 50. O ,0 significa que você está pegando a coluna 0 (ou seja, a primeira) dessas linhas.

@Yan Orestes: Obrigado!