Jogos Matemáticos com NumPy

PythonBeginner
Pratique Agora

Introdução

Neste desafio, você colocará em prática seus conhecimentos sobre o módulo NumPy no Python. Sua tarefa será implementar diversas funções essenciais para manipular arrays NumPy, abrangendo desde operações matemáticas fundamentais até transformações de estrutura. Os arquivos necessários já foram preparados e estão disponíveis no explorador de arquivos à esquerda.

Este é um Desafio (Challenge), que difere de um Laboratório Guiado por exigir que você tente concluir as tarefas de forma independente, em vez de apenas seguir instruções passo a passo. Desafios costumam ser mais complexos. Se encontrar dificuldades, você pode debater com o Labby ou consultar a solução. Dados históricos mostram que este é um desafio de nível avançado com uma taxa de aprovação de 50%. Ele possui uma taxa de avaliações positivas de 97% entre os alunos.

Multiplicação Elemento a Elemento

Sua primeira tarefa é criar uma função que multiplique dois arrays NumPy elemento por elemento. Isso significa que cada valor no primeiro array deve ser multiplicado pelo valor correspondente na mesma posição do segundo array.

TODO

  • Complete a função multiply_arrays no arquivo multiply_arrays.py.

Requisitos

  • A função deve se chamar obrigatoriamente multiply_arrays.
  • Ela deve aceitar dois arrays NumPy, a e b, como parâmetros de entrada.
  • Deve retornar um novo array NumPy contendo o resultado da multiplicação elemento a elemento entre a e b.
  • Considere que os arrays de entrada sempre terão o mesmo formato (shape).

Exemplo

Após implementar a função, execute o script para verificar o resultado:

python3 multiply_arrays.py

Saída esperada:

Input a: [1 2 3]
Input b: [4 5 6]
Element-wise multiplication result: [4 10 18]
Expected: [4 10 18]
✨ Verificar Solução e Praticar

Multiplicação de Matrizes

Em seguida, você implementará a multiplicação de matrizes (produto matricial). Diferente da multiplicação elemento a elemento, a multiplicação de matrizes segue as regras da álgebra linear, exigindo que as dimensões internas das duas matrizes sejam compatíveis.

TODO

  • Complete a função matrix_multiply no arquivo matrix_multiply.py.

Requisitos

  • A função deve se chamar matrix_multiply.
  • Ela deve aceitar dois arrays NumPy, a e b, como entrada.
  • Deve retornar um novo array NumPy que seja o produto matricial de a e b.
  • Os arrays de entrada terão dimensões compatíveis para a operação.

Exemplo

Após a implementação, execute o script:

python3 matrix_multiply.py

Saída esperada:

Input matrix a:
[[1 2]
 [3 4]]
Input matrix b:
[[5 6]
 [7 8]]
Matrix multiplication result:
[[19 22]
 [43 50]]
Expected:
[[19 22]
 [43 50]]
✨ Verificar Solução e Praticar

Transposição de Array

Nesta etapa, você escreverá uma função para transpor um array NumPy. Transpor um array consiste em inverter seus eixos, transformando linhas em colunas e vice-versa.

TODO

  • Complete a função transpose_array no arquivo transpose_array.py.

Requisitos

  • A função deve se chamar transpose_array.
  • Deve aceitar um único array NumPy, a, como entrada.
  • Deve retornar a versão transposta do array original.

Exemplo

Execute o script após a implementação:

python3 transpose_array.py

Saída esperada:

Original array:
[[1 2 3]
 [4 5 6]]
Transposed array:
[[1 4]
 [2 5]
 [3 6]]
Expected:
[[1 4]
 [2 5]
 [3 6]]
✨ Verificar Solução e Praticar

Redimensionamento de Array (Reshape)

Agora, você criará uma função para alterar o formato (reshape) de um array NumPy. O redimensionamento muda as dimensões de um array sem alterar seus dados internos. O número total de elementos deve permanecer o mesmo.

TODO

  • Complete a função reshape_array no arquivo reshape_array.py.

Requisitos

  • A função deve se chamar reshape_array.
  • Deve aceitar um array NumPy a e uma tupla shape como entrada.
  • Deve retornar um novo array contendo os dados de a, mas com as novas dimensões especificadas por shape.

Exemplo

Teste sua implementação executando o script:

python3 reshape_array.py

Saída esperada:

Original array: [1 2 3 4 5 6]
New shape: (2, 3)
Reshaped array:
[[1 2 3]
 [4 5 6]]
Expected:
[[1 2 3]
 [4 5 6]]
✨ Verificar Solução e Praticar

Cálculo de Distância Euclidiana

A distância euclidiana é uma forma comum de medir a distância em linha reta entre dois pontos. Sua tarefa é implementar uma função que calcule essa distância entre dois arrays NumPy unidimensionais (vetores).

A fórmula para a distância euclidiana entre dois vetores a e b é:

d(a, b) = \sqrt{\sum\_{i=1}^{n}(a_i - b_i)^2}

TODO

  • Complete a função euclidean_distance no arquivo euclidean_distance.py.

Requisitos

  • A função deve se chamar euclidean_distance.
  • Deve aceitar dois arrays NumPy 1D, a e b, com o mesmo comprimento.
  • Deve retornar um número de ponto flutuante (float) representando a distância euclidiana entre eles.

Exemplo

Verifique o resultado executando o script:

python3 euclidean_distance.py

Saída esperada:

Point a: [1 2 3]
Point b: [4 5 6]
Euclidean distance: 5.196152422706632
Expected: 5.196152422706632
✨ Verificar Solução e Praticar

Resumo

Neste desafio, você praticou operações fundamentais do NumPy. Você implementou funções para multiplicação elemento a elemento, produto matricial, transposição, redimensionamento de arrays e cálculo de distância euclidiana. Essas habilidades são pilares essenciais para análise de dados, aprendizado de máquina e computação científica em Python.