Este tutorial mostrará como usar a função NumPy max, que você verá em código Python como np.max.
A um nível alto, eu quero explicar a função e mostrar como ela funciona. Sendo assim, há duas seções primárias neste tutorial: a sintaxe do NumPy max, e exemplos de como usar NumPy max.
Se você ainda estiver começando com o NumPy, recomendo que leia o tutorial inteiro, comece a terminar. Dito isto, se você quiser apenas obter uma resposta rápida para uma pergunta, você pode pular para a seção apropriada com um dos seguintes links:
- A sintaxe do NumPy max
- Exemplos de como usar NumPy max
Ok. Com tudo isso em mente, vamos começar.
Primeiro, vamos falar sobre NumPy e a função NumPy max.
- Uma rápida introdução à função NumPy max
- Numpy é um módulo de manipulação de dados para Python
- Numpy é um conjunto de ferramentas para trabalhar com dados numéricos
- NumPy max calcula o máximo dos valores em um array NumPy
- Um exemplo de alto nível de como np.max funciona
- A sintaxe do numpy max
- Uma nota rápida
- Uma explicação da sintaxe
- Os parâmetros do np.max
- a (requerido)
- eixo (opcional)
- Uma revisão rápida dos eixos da matriz
- O parâmetro array especifica o eixo para calcular os máximos
- out (opcional)
- keepdims (opcional)
- Exemplos: como usar a função NumPy max
- Executar este código primeiro
- Importar numpy
- Calcule o máximo de um array unidimensional
- Compute o máximo de um array 2-d
- Calcule o valor máximo das colunas de um array 2-d
- O parâmetro eixo especifica qual eixo você quer resumir
- Compute max with axis = 0
- Compute a linha máxima com eixo = 1
- Como usar o parâmetro keepdims com np.max
- Definir keepdims iguais a true (e manter as mesmas dimensões)
- Realizar np.max com keepdims = True
- Se você quer aprender ciência de dados em Python, aprenda NumPy
- Para mais tutoriais de ciências de dados em Python, inscreva-se em nossa lista de e-mail
- Inscreva-se em tutoriais de dados científicos GRÁTIS
- Cheque sua caixa de entrada de e-mail para confirmar sua inscrição …
Uma rápida introdução à função NumPy max
É provavelmente claro para você que a função NumPy max é uma função no módulo NumPy.
Mas se você é um verdadeiro iniciante, pode não saber realmente o que é NumPy. Então antes de falarmos especificamente sobre a função np.max, vamos falar rapidamente sobre NumPy.
O que é exatamente NumPy?
Numpy é um módulo de manipulação de dados para Python
Para simplificar, NumPy é um pacote de manipulação de dados para a linguagem de programação Python.
Se você estiver interessado na ciência dos dados em Python, NumPy é muito importante. Isto porque muito trabalho de ciência de dados é simplesmente manipulação de dados. Se você está fazendo um aprendizado profundo ou análise de dados, uma grande quantidade de trabalho em ciência de dados é apenas limpar dados, preparar dados e explorá-los para ter certeza de que não há problema em usá-los.
Again, devido à importância da manipulação de dados, NumPy é muito importante para a ciência de dados em Python.
Numpy é um conjunto de ferramentas para trabalhar com dados numéricos
Especificamente, porém, NumPy fornece um conjunto de ferramentas para trabalhar com dados numéricos.
Python possui outros conjuntos de ferramentas para trabalhar com dados não numéricos e dados de tipo misto (como o módulo Pandas). Mas se você tiver qualquer tipo de dados numéricos que você precise limpar, modificar, reformular ou analisar, NumPy é provavelmente o conjunto de ferramentas que você precisa.
As funções NumPy podem operar em uma variedade de estruturas de dados, mas são construídas para operar em uma estrutura chamada matriz NumPy. As arrays NumPy são apenas um tipo especial de objeto Python que contém dados numéricos. Existem várias maneiras de criar arrays numéricos, incluindo a função np.array, a função np.ones, a função np.zeros e a função np.arange, juntamente com muitas outras funções cobertas em tutoriais anteriores aqui no Sharp Sight.
Importantemente, as arrays NumPy são otimizadas para computações numéricas. Portanto, há um conjunto de ferramentas no NumPy para executar cálculos numéricos em arrays NumPy, como calcular a média de um array NumPy, calcular a mediana de um array NumPy e assim por diante.
Essencialmente, o NumPy fornece um conjunto de ferramentas para criar arrays de dados numéricos e executar cálculos nesses dados numéricos.
Um dos cálculos que você pode executar é calcular o valor máximo de um array NumPy. É aí que a função np.max entra.
NumPy max calcula o máximo dos valores em um array NumPy
A função numpy.max()
calcula o valor máximo dos valores numéricos contidos em um array NumPy. Ela também pode calcular o valor máximo das linhas, colunas ou outros eixos. Vamos falar sobre isso na seção de exemplos.
Syntactically, você verá frequentemente a função NumPy max em código como np.max. Você a verá escrita assim quando o programador tiver importado o módulo NumPy com o apelido np
.
Adicionalmente, apenas para esclarecer, você deve saber que a função NumPy max é a mesma coisa que a função NumPy amax, AKA np.amax. Essencialmente np.max é um alias de np.amax. Além do nome, eles são os mesmos.
Um exemplo de alto nível de como np.max funciona
Later neste tutorial, vou mostrar-lhe exemplos concretos de como usar a função np.max, mas aqui mesmo quero dar-lhe uma ideia aproximada do que ela faz.
Por exemplo, assuma que você tem um array NumPy unidimensional com cinco valores:
Podemos usar a função NumPy max para calcular o valor máximo:
Embora este exemplo mostre como a função np.max()
opera em um array NumPy unidimensional, ela opera de forma similar em matrizes bidimensionais e matrizes multidimensionais. Novamente, vou mostrar exemplos completos destes na seção de exemplos deste tutorial.
Antes de olharmos para os exemplos de código, vamos dar uma rápida olhada na sintaxe e parâmetros do np.max.
A sintaxe do numpy max
A sintaxe da função np.max é bastante direta, embora alguns dos parâmetros da função possam ser um pouco confusos.
Aqui, vamos falar sobre a estrutura sintáctica da função, e também vou explicar os parâmetros importantes.
Uma nota rápida
Uma nota rápida antes de começarmos a rever a sintaxe.
Syntacticamente, o nome apropriado da função é numpy.max()
.
Dito isto, você verá frequentemente a função em código como np.max()
.
Porquê?
Comumente, no início de um programa que usa o módulo NumPy, os programadores irão importar a função NumPy como np
. Você verá literalmente uma linha de código no programa que diz import numpy as np
. Efetivamente, isto importa o módulo NumPy com o pseudônimo np
. Isto permite ao programador referir-se ao NumPy como np
no código, o que os habilita a referir-se à função numpy.max como np.max.
Dito isto, vamos dar uma olhada mais de perto na sintaxe.
Uma explicação da sintaxe
A um nível alto, a sintaxe do np.max é bastante direta.
Existe o nome da função – np.max()
– e dentro da função, existem vários parâmetros que nos permitem controlar o comportamento exato da função.
Vejamos mais de perto os parâmetros do np.max, porque são os parâmetros que realmente lhe dão um controle fino da função.
Os parâmetros do np.max
O numpy.A função max tem quatro parâmetros primários:
a
axis
out
keepdims
Vamos falar sobre cada um destes parâmetros individualmente.
a (requerido)
>O parâmetro permite especificar os dados em que a função np.max irá operar. Essencialmente, ele especifica o array de entrada para a função.
Em muitos casos, este array de entrada será um array NumPy adequado. Dito isto, numpy.max (e a maioria das outras funções NumPy) irá operar em qualquer “array como sequência” de dados. Isso significa que o argumento para o parâmetro a
pode ser uma lista Python, um tuple Python, ou uma das várias outras seqüências Python.
Cutem em mente que você precisa fornecer algo para este argumento. É necessário.
eixo (opcional)
O parâmetro axis
permite especificar o eixo no qual você irá calcular os valores máximos.
Said mais simples, o parâmetro de eixo permite que você calcule os máximos de linha e de coluna.
Explicarei como fazer isso com mais detalhes na seção de exemplos abaixo, mas deixe-me explicar rapidamente como o parâmetro axis
funciona.
Uma revisão rápida dos eixos da matriz
A um nível alto, você precisa entender que as matrizes NumPy têm eixos.
Os eixos são como direções ao longo da matriz NumPy. Em um array bidimensional, o eixo 0 é o eixo que aponta para baixo das linhas e o eixo 1 é o eixo que aponta horizontalmente através das colunas.
O parâmetro array especifica o eixo para calcular os máximos
Então como isso se relaciona com o parâmetro axis
?
Quando usamos o parâmetro axis
na função numpy.max, estamos a especificar o eixo ao longo do qual se encontram os máximos.
Isto permite-nos efectivamente calcular os máximos da coluna e os máximos da linha.
Deixe-me mostrar o que quero dizer.
Lembre que o eixo 0 é o eixo que aponta para baixo, para as linhas.
Quando usamos o código np.max(axis = 0)
num array, estamos efetivamente dizendo ao NumPy para computar os valores máximos naquela direção … a direção do eixo 0.
Efetivamente, quando definimos axis = 0
, estamos especificando que queremos calcular os máximos da coluna.
Similiarmente, lembre-se que em um array bidimensional, o eixo 1 aponta horizontalmente. Portanto, quando usamos NumPy max com axis = 1
, estamos dizendo NumPy para computar os máximos horizontalmente, na direção do eixo 1.
Esta efetivamente calcula os máximos de linha.
Vejamos exemplos concretos de código de como fazer isto, mais tarde na seção de exemplos.
Cutem em mente que o parâmetro do eixo é opcional. Se você não especificar um eixo, NumPy max encontrará o valor máximo em toda a matriz NumPy.
out (opcional)
O parâmetro out permite especificar uma matriz de saída especial onde você pode armazenar a saída de np.max.
Não é comum usar este parâmetro (especialmente se você é um iniciante) então não vamos discutir isto no tutorial.
out
é um parâmetro opcional.
keepdims (opcional)
O parâmetro keepdims
é um pouco confuso, por isso será necessário um pequeno esforço para compreender.
Ultimamente, o parâmetro keepdims
mantém as dimensões da saída iguais às dimensões da entrada.
Para entender porque isto pode ser necessário, vamos dar uma olhada em como a função numpy.max normalmente funciona.
Quando você usa np.max em um array NumPy típico, a função reduz o número de dimensões. Ela resume os dados.
Por exemplo, vamos dizer que você tem um array NumPy unidimensional. Você usa NumPy max no array.
Quando você usa np.max em um array 1-d, a saída será um único número. Um valor escalar … não um array 1-d.
Essencialmente, as funções como NumPy max (assim como numpy.mediana, numpy.mean, etc.) resumem os dados, e ao resumir os dados, estas funções produzem outputs que têm um número reduzido de dimensões.
Em algumas ocasiões, porém, o usuário deseja que o output tenha o mesmo número de dimensões. Há momentos em que se a entrada é um array 1-d, você quer que a saída seja um array 1-d (mesmo que o array de saída tenha um único valor).
Você pode fazer isso o parâmetro keepdims
.
Por padrão, keepdims
está definido para False
. Assim, por padrão (como discutido acima), as dimensões da saída não serão as mesmas que as dimensões da entrada. Por padrão, as dimensões do output serão menores (porque np.max resume os dados).
Mas se você definir keepdims = True
, o output terá as mesmas dimensões do input.
Isto é um pouco abstrato sem um exemplo concreto, então vou mostrar um exemplo deste comportamento mais tarde na seção de exemplos.
E na verdade, agora que revisamos os parâmetros, este é um bom ponto para começar a olhar os exemplos do NumPy max.
Exemplos: como usar a função NumPy max
Nesta seção, vou mostrar exemplos concretos de como usar a função NumPy max.
I’ll show you several variations of how to find the maximum value of an array. Eu mostrarei a você como encontrar o valor máximo de um array 1-d, como encontrar o valor máximo de um array 2-d, e como trabalhar com vários dos parâmetros importantes do numpy.max.max.
Executar este código primeiro
Antes de começarmos, há algumas coisas preliminares que você precisa fazer para ser configurado corretamente.
Primeiro, você precisa ter o NumPy instalado corretamente no seu computador.
Importar numpy
Segundo, você precisa ter o NumPy importado para o seu ambiente de trabalho.
Você pode importar NumPy com o seguinte código:
import numpy as np
Note que nós importamos NumPy como np
. Isso significa que vamos nos referir a NumPy no nosso código com o alias np
.
Ok, agora que isso acabou, vamos ver alguns exemplos.
Calcule o máximo de um array unidimensional
Comecemos simples.
Aqui, vamos calcular o valor máximo de um array 1-dimensional.
Para fazer isto, vamos primeiro criar um array 1-dimensional que contenha alguns inteiros aleatórios. Para criar este array, vamos usar a função numpy.random.randint()
. Tenha em mente que você precisa usar a função np.random.seed()
para que seu array NumPy contenha os mesmos inteiros que os inteiros neste exemplo.
np.random.seed(22)np_array_1d = np.random.randint(size = 5, low = 0, high = 99)
Esta sintaxe criará um array 1-d chamado np_array_1d
.
Podemos imprimir np_array_1d
usando a função print()
.
print(np_array_1d)
E aqui está a saída:
Visualmente, podemos identificar o valor máximo, que é 84
.
Mas vamos fazer isso com algum código.
Aqui, vamos calcular o valor máximo da nossa matriz NumPy usando a função np.max()
.
np.max(np_array_1d)
Que produz a seguinte saída:
84
Este é um exemplo extremamente simples, mas ilustra a técnica. Obviamente, quando o array tem apenas 5 itens de comprimento, você pode inspecionar visualmente o array e encontrar o valor máximo. Mas esta técnica funcionará se você tiver um array com milhares de valores (ou mais!).
Compute o máximo de um array 2-d
Next, vamos computar o máximo de um array 2-d.
Para fazer isso, obviamente precisamos de um array 2-d para trabalhar, então vamos primeiro criar um array 2-dimensional NumPy.
Para criar nosso array 2-d, vamos usar a função np.random.choice(). Essencialmente, esta função vai extrair uma amostra aleatória dos números inteiros entre 0 e 8, sem substituição. Após o np.random.choice() ser executado, vamos usar o método reshape() para reformular os inteiros em um array bidimensional com 3 linhas e 3 colunas.
np.random.seed(1)np_array_2d = np.random.choice(9, 9, replace = False).reshape((3,3))
Vejamos imprimindo o array, np_array_2d
.
print(np_array_2d)
]
Como você pode ver, este é um array 2-dimensional com 3 linhas e 3 colunas. Ele contém os números inteiros de 0 a 8, dispostos aleatoriamente no array.
Agora, vamos calcular o valor máximo do array:
np.max(np_array_2d)
Que produz a seguinte saída:
8
Again, este é um exemplo muito simples, mas você pode usá-lo com um array 2-d muito maior e ele irá operar da mesma forma. Depois de aprender a usar esta técnica, tente com arrays maiores!
Next, vamos fazer algo mais complicado.
… nos próximos exemplos, vamos calcular os valores máximos das colunas e os máximos das linhas.
Calcule o valor máximo das colunas de um array 2-d
Primeiro acima: vamos calcular os valores máximos das colunas de um array.
Para fazer isso, precisamos usar o parâmetro axis
. Especificamente, precisamos definir axis = 0
dentro da função numpy.max.
Vejamos rapidamente porque.
O parâmetro eixo especifica qual eixo você quer resumir
Lembrar que as arrays NumPy têm eixos, e que os eixos são como direções ao longo do array. Em um array 2-d, o eixo 0 é o eixo que aponta para baixo, e o eixo 1 é o eixo que aponta horizontalmente.
Podemos usar esses eixos para definir a direção ao longo da qual usar np.max.
Então vamos dizer que queremos calcular os valores máximos das colunas. Isto é equivalente a calcular os meios para baixo.
Essencialmente, para calcular os máximos das colunas, precisamos calcular os máximos no sentido eixo-0.
Compute max with axis = 0
Deixe-me mostrar como.
Aqui, vamos recriar a nossa matriz 2-d NumPy. Isto é o mesmo que o array 2-d NumPy que criamos em um exemplo anterior, então se você já rodou esse código, você não precisa executá-lo novamente.
np.random.seed(1)np_array_2d = np.random.choice(9, 9, replace = False).reshape((3,3))
E podemos imprimi-lo:
print(np_array_2d)
]
Agora novamente, este é um array 2-d com 3 linhas e 3 colunas. Ele contém os números inteiros de 0 a 8, dispostos aleatoriamente no array.
Agora, vamos calcular os máximos das colunas usando numpy.max com axis = 0
.
# CALCULATE COLUMN MAXIMAnp.max(np_array_2d, axis = 0)
Que produz o seguinte array de saída:
array()
Vamos avaliar o que aconteceu aqui.
Por meio da configuração axis = 0
, especificamos que queremos que a função NumPy max calcule os valores máximos para baixo ao longo do eixo 0.
É bastante simples desde que você entenda os eixos NumPy e como eles funcionam nas funções NumPy.
Compute a linha máxima com eixo = 1
Simplesmente, podemos calcular os máximos da linha definindo o parâmetro axis
para axis = 1
.
Aqui está o código para criar o conjunto de dados 2-d novamente:
np.random.seed(1)np_array_2d = np.random.choice(9, 9, replace = False).reshape((3,3))
print(np_array_2d)
]
E agora vamos calcular os máximos de linha:
np.max(np_array_2d, axis = 1)
Com a seguinte saída:
array()
Isto deve fazer sentido se você já leu e entendeu os exemplos anteriores.
Quando definimos axis = 1
, estamos dizendo ao numpy.max para calcular os valores máximos na direção do eixo-1. Como eixo 1 é o eixo que corre horizontalmente ao longo do array, isto efetivamente calcula os valores máximos ao longo das linhas de um array 2-d:
Again, isto é bastante simples, desde que você realmente entenda os eixos do array NumPy. Se você ainda estiver tendo problemas para entender eixos, eu recomendo que você revise nosso tutorial sobre NumPy array axes.
Como usar o parâmetro keepdims com np.max
Finalmente, vamos dar uma olhada no parâmetro keepdims
>
Antes de fazermos isso, deixe-me explicar porque precisamos dele.
Como notei anteriormente, a função NumPy max resume os dados quando você os usa. Na verdade, muitas das funções NumPy que calculam estatísticas resumidas (como np.mean, np.median, np.min, etc.) resumem os dados pela sua própria natureza. Ao calcular uma estatística de resumo, o usuário está, por definição, compactando os dados.
Isso tem consequências importantes relacionadas às dimensões dos dados.
Quando o usuário compacta os dados com uma função como numpy.max, a saída da função terá um número reduzido de dimensões.
Por exemplo, vamos dizer que você está calculando o valor máximo de um array bidimensional. Se você usar numpy.max neste array 2-dimensional (sem o parâmetro axis
), então a saída será um único número, um escalar. Os escalares têm dimensões zero. Duas dimensões dentro, zero dimensão fora.
A função NumPy max reduz efetivamente as dimensões entre a entrada e a saída.
Algumas vezes, no entanto, você não quer um número reduzido de dimensões. Pode haver situações em que você precisa que a saída tenha tecnicamente as mesmas dimensões da entrada (mesmo que a saída seja um único número).
Você pode forçar esse comportamento usando o parâmetro keepdims
.
Definir keepdims iguais a true (e manter as mesmas dimensões)
Por padrão, o parâmetro keepdims
é definido como False
. Como acabei de explicar, isto significa que a saída não precisa ter as mesmas dimensões que a entrada, por padrão.
Mas se você definir keepdims = True
, isto forçará a saída a ter o mesmo número de dimensões do input.
Isto pode confundi-lo, então vamos dar uma olhada em um exemplo sólido.
Primeiro, vamos apenas criar um array 2-d.
Este é o mesmo array que criamos anteriormente, então se você já rodou este código, você não precisa executá-lo novamente. Essencialmente, este código cria um array 2-d com os números de 0 a 8, dispostos aleatoriamente em um array 3-by-3.
np.random.seed(1)np_array_2d = np.random.choice(9, 9, replace = False).reshape((3,3))
Apenas por uma questão de clareza, vamos dar uma olhada imprimindo-o:
print(np_array_2d)
E aqui está o array:
]
Again, este array contém apenas os números inteiros de 0 a 8, dispostos aleatoriamente em um array NumPy de 3 por 3.
E quantas dimensões ele tem?
É provavelmente óbvio para você, mas podemos recuperar diretamente o número de dimensões extraindo o atributo ndim
do array.
np_array_2d.ndim
E isto nos diz o número de dimensões:
2
Então, np_array_2d
é um array bidimensional.
Agora, vamos usar np.max para calcular o valor máximo do array.
np.max(np_array_2d)
O valor máximo é 8
.
E quantas dimensões tem o output? Podemos verificar referenciando o atributo ndim
no final do atributo np.max()
function:
np.max(np_array_2d).ndim
Quantas dimensões tem o output?
0
.
O output do np.max é o valor máximo (8), que é um escalar. Este escalar tem dimensões zero.
Realizar np.max com keepdims = True
Agora, vamos executar novamente o código com keepdims = True
.
np.max(np_array_2d, keepdims = True)
Que produz a seguinte saída:
array(])
E vamos verificar as dimensões:
np.max(np_array_2d, keepdims = True).ndim
2
Aqui, quando executamos np.max em np_array_2d
com keepdims = True
, a saída tem 2 dimensões.
Cuidado que o valor máximo é o mesmo: 8
. É só que as dimensões da saída são diferentes. Ajustando keepdims = True
, mudamos a estrutura do output … ao invés de ser um escalar, o output é na verdade um array NumPy 2-d com um único valor (8
).
Se você quer aprender ciência de dados em Python, aprenda NumPy
Se você leu outros tutoriais aqui no blog de ciência de dados Sharp Sight, você sabe o quão importante é a manipulação de dados.
Se você está falando sério sobre aprender ciência de dados, você realmente precisa dominar as noções básicas de manipulação de dados. Uma grande parte do fluxo de trabalho da ciência dos dados é apenas limpar e manipular dados de entrada.
Se você está trabalhando em Python, uma das habilidades essenciais que você precisa saber então é NumPy. Numpy é fundamental para limpar, manipular e explorar seus dados.
Se você quer aprender ciência de dados em Python, aprenda NumPy e aprenda-o bem.
Para mais tutoriais de ciências de dados em Python, inscreva-se em nossa lista de e-mail
Dizendo que, se você quer aprender NumPy e ciências de dados em Python, então inscreva-se em nossa lista de e-mail.
Aqui no blog Sharp Sight, nós publicamos regularmente tutoriais de ciências de dados.
Quando você se inscrever, você terá tutoriais grátis em:
- NumPy
- Pandas
- Base Python
- Scikit learn
- Aprendizagem da máquina
- Aprendizagem profunda
- … e muito mais.
Quando publicarmos tutoriais, nós os enviaremos diretamente para sua caixa de entrada.
Quer aprender ciência de dados em Python? Inscreva-se agora.