1
resposta

[Dúvida] ravel() vs flat()

no minuto 3:43 a prof utilizou: "for ax in axs.flat()" logo em seguida "for ax in axs.ravel()" Insira aqui a descrição dessa imagem para ajudar na acessibilidade

qual a diferença desses dois métodos? ambos retornam a forma flatten do array? se sim, por que utilizou um, depois o outro, já que fazem a mesma coisa?

1 resposta

flat:

  • Método de um objeto ndarray: .flat é um método de um objeto ndarray, o que significa que só pode ser chamado em arrays NumPy reais.

  • Retorna um iterador: .flat retorna um iterador, o que significa que gera uma sequência de elementos do array achatado um de cada vez. Isso pode ser útil se você só precisa processar os elementos do array um de cada vez, mas também pode ser ineficiente se você precisar acessar todo o array de uma vez.

  • Altera o array original: .flat modifica o array original no lugar. Isso significa que se você alterar os elementos do array achatado, as alterações também serão refletidas no array original.

.ravel:

  • Função de nível de biblioteca: .ravel é uma função de nível de biblioteca, o que significa que pode ser chamada em qualquer objeto que possa ser analisado com sucesso. Isso significa que você pode usar .ravel para achatar arrays que não são arrays NumPy.

  • Retorna uma visão contígua: .ravel retorna uma visão contígua do array original. Isso significa que os elementos do array achatado são armazenados na memória em um bloco contíguo, o que pode torná-lo mais eficiente para processar o array.

  • Não altera o array original: .ravel não modifica o array original no lugar. Isso significa que se você alterar os elementos do array achatado, as alterações não serão refletidas no array original.