Numpy Genfromtxt

Numpy Genfromtxt

Um pacote Python particularmente apreciado e amplamente utilizado é Numpy. Ele oferece várias funções para transformar dados tabulares em uma matriz. Um deles é o Numpy.função genFromText (). Uma das muitas funções fornecidas pela Biblioteca Python Numpy que recebe dados tabulares o gera em uma variedade de dados, e o texto de saída é chamado de GenFromtxt Numpy. Neste post, vamos passar por como usar o Python Numpy.função genFromtxt () para carregar dados de um arquivo de texto. Durante o tutorial, demonstraremos o uso do Numpy Genfromtxt e o método GenFromText ().

Definição de função genFromTxt ()

Um arquivo de texto pode carregar dados em um programa usando a função genFromtxt (). Para limpar o conteúdo no arquivo de texto, vários valores de argumento são necessários. Através do uso de filtragem, exclusão e substituição de operações, ele também pode lidar com valores ausentes ou nulos.

Existem dois loops em Genpy Genfromtxt. Cada linha do arquivo é convertida em uma sequência de string usando um único loop. O segundo loop altera cada string para o tipo de dados adequado. Como resultado, essa abordagem é mais lenta e não tão eficiente quanto o loop único. O método Genfromtxt é responsável por preencher qualquer lacuna nos dados se houver algum valores ausentes.

Sintaxe da função GenFromtxt ()

Anexamos a seguinte sintaxe da função genFromTxt ():


A função GenFromTxt () aceita uma ampla gama de argumentos. Mas, nos concentraremos nos mais típicos:

Nome do parâmetro

Descrição

fname O nome do arquivo que será lido é indicado como fname.
dtype Isso exibe o tipo de dados da matriz resultante. O valor padrão do dtype é “flutuar.”
comentários Esta opção descreve cada linha de informação.
delimiter = nenhum O valor empregado para dividir valores é este.
skip_header = 0 Este valor instrui o arquivo a pular linhas a partir do início.
skip_footer = 0 Com esta opção, as linhas inferiores do arquivo devem ser ignoradas.
conversores = nenhum Este valor diz às funções ou variáveis ​​lambda como converter dados da coluna em valores.
Missing_values ​​= Nenhum Este é o valor da string usado para preencher os valores ausentes.

Vamos falar sobre vários exemplos de genéricos numpy para saber mais sobre como essa função importante opera.

Exemplo 1

Vamos começar com um exemplo fácil. Para criar a matriz de saída usando a função GenFromtxt, invocamos as bibliotecas "Numpy" e "IO" primeiro. Como usamos o unicode de string nos dados, os dados são fornecidos manualmente no formato da string e depois transmitidos através do método GenFromtxt usando a função "Stringio". Aqui, você pode ver que vírgulas são empregadas como delimitadores porque podem ser utilizadas para distinguir entre valores. A matriz de resultados da função Genfromtxt contém a matriz de saída formada. Tente entender o seguinte código:

importar numpy
De IO Import stringio
valores = u "11, 22, 33 \ n111, 222, 333 \ n55,101,112"
data_val = numpy.GenFromTxt (Stringio (valores), delimiter = ",")
imprimir (data_val)



O formato de entrada pode ser especificado como um gerador, lista de strings, string, arquivo de objeto aberto com função de leitura ou string. A função Genfromtxt assume e exibe a matriz de saída, dependendo do tipo de entrada. Veja a seguinte saída:


Por favor, observe que o método Genfromtxt interpreta uma única string como um nome de arquivo, esteja localizado localmente ou remotamente. O método GenFromtxt também pode receber o local da URL, que baixará e abrirá o arquivo que forneceu o URL.

Exemplo 2

Neste exemplo, veremos como usar a opção Delimitador. Esta opção é usada aqui para dividir os dados para nossa matriz de saída, dependendo da largura dos valores fornecidos no arquivo de entrada.

Como não usamos uma vírgula ou outro personagem para separar os dois dados de entrada denominados "valores1" e "valores2", que incluem números inteiros de diferentes larguras, devemos utilizar os valores inteiros como um delimitador para dividir os valores no arquivo para o arquivo para Nossa matriz de saída pretendida.

Como as duas entradas tinham larguras de valor diferentes em uma única linha, dividimos as colunas em três grupos de valores usando o delimitador inteiro 3. Quando os valores em nosso arquivo de entrada têm a mesma largura, podemos utilizar este método. Se os valores no arquivo não tiverem a mesma largura, podemos usar uma sequência de valores inteiros como delimitador para dividir os valores, como fizemos na entrada "valores_input2". Usamos o delimitador das seqüências 4, 3 e 2.

importar numpy como np
De IO Import stringio
valores1 = u "2 2 6 \ n 4 2 66 \ n453203 3"
valores_input1 = np.GenFromTxt (Stringio (valores1), delimiter = 3)
print (valores_input1)
valores2 = u "665636143 \ n 3 5 7 \ n 6532 9"
valores_input2 = np.GenFromTxt (Stringio (valores2), delimiter = (4, 3, 2))
print (valores_input2)



Aqui está a seguinte saída:

Exemplo 3

Neste exemplo, falaremos sobre o parâmetro AutoStrip da função GenFromtxt (). Esta opção é usada para excluir automaticamente os espaços brancos entre os valores em nosso arquivo de dados.

Se você usar um delimitador, a linha se divide em uma série de caracteres, incluindo qualquer espaço de branco disponível. No entanto, se passarmos "AutoStrip = true" como um parâmetro, receberemos uma sequência de caracteres vazios em vez disso.

Na captura de tela a seguir, você pode ver que importamos os módulos primeiro e criamos nossos dados em uma variável chamada "valores". Depois disso, usamos a função Genfromtxt. Aqui, não estamos utilizando a função "AutoStrip". Estaremos usando esta opção na próxima seção. Execute o código abaixo e verifique os resultados. Aqui, não usamos a função AUTOSTRIP.

importar numpy
De IO Import stringio
valores = u "2, xyz, 4 \ n 5, nnn, 2"
Imprimir (Numpy.Genfromtxt (Stringio (valores), delimiter = ",", dtype = "| u5")))



Abaixo está o resultado em que você pode ver os espaços entre os dados:


Na tela a seguir, você pode ver que o restante do código é o mesmo que acima, exceto pela adição da opção "AutoStrip" no final da última linha do código.

importar numpy
De IO Import stringio
valores = u "2, xyz, 4 \ n 5, nnn, 2"
Imprimir (Numpy.GenFromTxt (Stringio (valores), delimiter = ",", dtype = "| u5", automático = true))



Aqui está o resultado. Você pode combinar esta saída com a saída anterior e ver a diferença criada usando a opção "AutoStrip".

Exemplo 4

Digamos que você queira eliminar o material das cordas que contêm comentários ou certos símbolos. Você pode conseguir isso passando os parâmetros de comentários para o método GenFromtxt (). Execute o seguinte código:

importar numpy
De IO Import stringio
valores = u "" "#
# Ignore !
# Ignore isso também!
11, 1
31, 5
12, 9
15, 13
# Esta é a última linha do código!
6, 3
"" "
Imprimir (Numpy.GenFromTxt (Stringio (valores), Comentários = "#", delimiter = ",")))



Aqui está a saída onde você pode ver que os comentários mencionados no código anterior são ignorados.

Conclusão

Para ter uma compreensão completa da função Genpy Genfromtxt e seu trabalho, vimos em detalhes usando vários exemplos neste post. Vimos exemplos de como usar a função GenFromtxt para ler arquivos de dados de entrada com vários tipos de dados e como usar várias opções e abordagens de delimitador. Você pode se referir a esta informação se for novo neste conceito. Este artigo contém todos os detalhes cruciais sobre a função GenFromtxt e seu uso.