4 recursos legais do Numpy que eu uso constantemente

Neste artigo, quero falar sobre várias funções do Numpy que eu uso para analisar dados o tempo todo. Esta não é de forma alguma uma lista exaustiva, mas acho que as ferramentas que serão discutidas serão úteis para todos, sem exceção.



Diante de uma nova tarefa, pensei várias vezes: "Isso é algo bastante específico, dificilmente existe uma função embutida para isso". No caso de Numpy, mais frequentemente eu estava errado do que certo.


Mas vamos direto ao ponto. A única linha de importação que precisamos:





onde ()


A função where () retornará elementos que satisfazem uma determinada condição. Vejamos um exemplo.


Crie uma lista de classificações ( arbitrárias ):



Agora você pode usar where () para encontrar estimativas maiores, digamos, que 3:



Observe que os índices dos itens pesquisados ​​são retornados.


Mas isso, é claro, não é tudo, a função pode aceitar dois parâmetros opcionais:


  • o primeiro substituirá os valores que satisfazem a condição
  • o segundo fará isso para valores que não satisfazem a condição


Como o artigo se destina a ser breve, vamos nos concentrar nisso.




argmin (), argmax (), argsort ()


A função argmin () retorna o índice do valor mínimo. Para o mesmo conjunto de classificações que usamos acima, o resultado será:



argmax () , como você provavelmente adivinhou, faz exatamente o oposto - retorna o índice do elemento máximo:



O último do trinity argsort () retornará uma lista de índices dos elementos classificados da matriz. Não se esqueça: você encontrará um grande número de situações quando precisar.





intersect1d ()


A função intersect1d () retornará a interseção de duas matrizes, ou seja, elementos exclusivos encontrados em ambos. Diferentemente dos exemplos anteriores, ele retornará não os índices, mas os próprios valores.


Crie duas matrizes:



Encontre os elementos comuns:





allclose ()


Por fim, considere a função allclose () . Retornará True se os elementos das duas matrizes forem iguais dentro da tolerância. Novamente, você não tem idéia de quantas vezes isso é necessário ao trabalhar com dados.


Declararemos duas matrizes, cuja diferença entre os elementos correspondentes não excede 0,2:



A função allclose () com uma tolerância de 0.1 deve retornar False :



Aumente a tolerância para 0,2 para obter a igualdade aproximada de matrizes:





Palavras de despedida


Não conte o número de vezes que eu fui ( e sou ) o culpado pela invenção da roda. Muitas vezes pensamos que nosso problema é único e ninguém imaginou criar uma ferramenta para resolvê-lo. Às vezes isso é verdade, mas muitas vezes você se sente como o último idiota, encontrando uma função padrão conveniente em vez da que você já passou muito tempo criando.


É melhor gastar um pouco desse tempo explorando as possibilidades das bibliotecas populares, porque foi graças a elas que as bibliotecas se tornaram populares.


Obrigado pela leitura.

Source: https://habr.com/ru/post/pt480740/


All Articles