Ir para conteúdo
Fórum Script Brasil
  • 0

Dificuldade para gravar dados de um array para outro...


JDMASTER

Pergunta

Boa noite amigo, sou iniciante em Python, e diferente de outras linguagens que já tive contato, estou tendo extrema dificuldade para conseguir transferir dados de um array para outro, utilizando o numpy...

Eu tenho o seguinte código que captura os dados de um arquivo de texto e joga para um array numpy:

 

valores = np.genfromtxt("C:\\Users\\Usuário\\Desktop\\arquivo.txt", delimiter=";", usecols=(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15), skip_header=7)

 

O resultado da captura acima é um array como o exemplo a seguir:

 

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

01 50 60 24 25 36 75 14 20 32 54 12 65 32 12 

 

Até aí tudo bem, ele esta capturando todo o arquivo perfeitamente. O problema começa quando eu quero pegar os dados deste array "valores", processá-los e em seguida jogar em outro array, utilizando também o numpy. O que quero fazer é por exemplo, calcular a média de todos os valores de cada linha, jogar os valores e a média em outro array numpy, o resultado esperado é conforme exemplo a seguir:

 

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 - 8 

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30  - 23

01 50 60 24 25 36 75 14 20 32 54 12 65 32 12 - 34,1

 

O traço utilizei apenas para melhor exemplificar que quero a média após os valores, no lugar do traço poderia ser outro espaço em branco.

 

Já tentei laços de repetição diversos, já utilizei vários exemplos da internet, e sempre dá erro, não estou conseguindo fazer isso.

 

Alguém poderia me explicar como proceder?

 

Muito obrigado pela atenção!
 

 

Editado por JDMASTER
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
import numpy as np

a = np.array([1, 50, 60, 24, 25, 36, 75, 14, 20, 32, 54, 12, 65, 32, 12])
print(a)
b = sum(a)
a.resize(16)
a[15] = b
print(a)

no codigo a cima eu joguei o resultado no mesmo array

Link para o comentário
Compartilhar em outros sites

  • 0
25 minutos atrás, ArteEN disse:

import numpy as np

a = np.array([1, 50, 60, 24, 25, 36, 75, 14, 20, 32, 54, 12, 65, 32, 12])
print(a)
b = sum(a)
a.resize(16)
a[15] = b
print(a)

no codigo a cima eu joguei o resultado no mesmo array

Boa noite caro amigo Arteen, agradeço sua atenção, realmente é uma boa solução quando o objetivo é manter o mesmo array, obrigado pela explicação.

Porém no meu caso, preciso copiar essas informações processadas em um novo array utilizando o numpy, porque além dos dados do exemplo, o novo array receberá dados de um segundo array, então eu preciso de um terceiro array para reunir os dados processados e normalizados, quero utilizar o numpy devido ao ganho de performance, já que vou trabalhar com milhões de linhas...

 

Obrigado mais uma vez pela atenção!

 

Link para o comentário
Compartilhar em outros sites

  • 0

você pode copiar o array e fazer o resize

import numpy as np

a = np.array([1, 50, 60, 24, 25, 36, 75, 14, 20, 32, 54, 12, 65, 32, 12])
c = a.copy()
c.resize(16)
c[15] = sum(a)
print(c)

isso faz que o array se mantenha intacto, mas se quer mais performance seria melhor usar um novo array só para os somatorios, vai economizar memoria

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...