Exercícios: Numpy

Exercícios: Numpy#

import numpy as np
  1. Crie os seguintes arrays:

    • Crie um array com 5 zeros.

    • Crie um array com 10 uns.

    • Crie um array com 5 valores 3.141.

    • Crie um array com os inteiros de 1 a 20.

    • Crie uma matriz 5 x 5 de uns com o tipo de dado int.

pass
  1. Use o numpy para:

    • Criar uma matriz 3D de 3 x 3 x 3 cheia de números aleatórios retirados de uma distribuição normal padrão (dica: np.random.randn()).

    • Redimensionar a matriz acima para o formato (27,).

pass
  1. Crie um array com 20 números espaçados linearmente entre 1 e 10.

pass
  1. Considere a seguinte array:

    a = np.arange(1, 26).reshape(5, 5)

    Utilize indexação para obter os seguintes resultados:

    • 20

    •   array([[ 9, 10],
        [14, 15],
        [19, 20],
        [24, 25]])
      
    • array([ 6,  7,  8,  9, 10])

    •   array([[11, 12, 13, 14, 15],
        [16, 17, 18, 19, 20]])
      
    •   array([[ 8,  9],
        [13, 14]])
      
pass
  1. Considere a seguinte array:

    a = np.arange(1, 17).reshape(4, 4)

    a) Calcule a soma de todos os numeros de a

    b) Calcule a soma de cada linha de a

    c) Extraia todos os valores de a que são maiores que a média de a (dica: use uma máscara booleana).

pass
  1. O Numpy possui uma função padrão para calcular o desvio padrão, np.std(). Porém, vamos escrever nossa própria função que opera sobre um array 1D (vetor). O desvio padrão é uma medida da «largura» da distribuição dos números dentro do vetor.

    Dado um array \(a\) e sua média \(\bar{a}\), o desvio padrão é calculado pela fórmula:

    \[ \sigma = \left [ \frac{1}{N} \sum_{i=1}^N (a_i - \bar{a})^2 \right ]^{1/2} \]

    Agora, vamos criar uma função para calcular o desvio padrão de um array de entrada, a:

    1. Primeiro, calcule a média dos elementos de a para obter \(\bar{a}\).

    2. Em seguida, calcule a soma dos quadrados de \((a - \bar{a})\).

    3. Depois, divida essa soma pelo número de elementos no array.

    4. Por fim, tire a raiz quadrada (você pode usar np.sqrt() para isso).

    Teste sua função utilizando um array aleatório e compare o resultado com o da função np.std() do Numpy. Não se esqueça de verificar também o tempo de execução.

pass
  1. Crie uma matriz 10 x 10 inicializada com números aleatórios entre 0 e 10. Em seguida, calcule a média da matriz (existe uma função do numpy para isso, np.mean()).

pass
  1. Crie uma função que gere uma aposta válida para a Mega Sena. A função deve produzir uma lista com 6 números aleatórios, variando entre 1 e 60, sem números repetidos.

pass
  1. Você tem uma lista em que cada elemento representa o valor gasto em reais em uma compra feita com seu cartão:

    L = [13.5, 8.0, 5.99, 27.30, 199.99, 57.21]
    

    Faça um programa cujo objetivo é calcular a porcentagem de cada valor em relação ao total gasto, dividindo cada gasto pelo total da lista para obter a porcentagem correspondente a cada compra.

pass
  1. Crie um array com ângulos em graus: 0, 15, 30, … até 90 (ou seja, de 15 em 15 graus até 90).

    Em seguida, crie 3 novos arrays contendo, respectivamente, o seno, cosseno e tangente dos elementos do primeiro array.

    Por fim, calcule o arco seno, arco cosseno e arco tangente dos arrays acima e compare os resultados com os ângulos originais.

  1. Desenvolva uma função que receba uma matriz quadrada de dimensão n x n e retorne a matriz triangular superior. Nesse tipo de matriz, todos os elementos abaixo da diagonal principal devem ser substituídos por zeros, mantendo os valores na diagonal e acima dela.

pass
  1. Dado o array:

    x = np.array([1, -1, 2, 5, 8, 4, 10, 12, 3])
    

    Calcule a diferença entre cada elemento e seu vizinho.

pass
  1. Dada uma matriz de ordem n x n, crie funções para:

    a) Calcular a soma dos elementos presentes na diagonal principal da matriz.

    b) Calcular a soma dos elementos presentes na diagonal secundária.

    c) Calcular a soma dos elementos em cada linha da matriz.

    d) Calcular a soma dos elementos em cada coluna da matriz.

pass
  1. Dada uma matriz quadrada n x n, faça uma função que diga se ela é simétrica ou não. Teste para np.random.randint(1, 99, (5, 5))

pass
  1. Desenvolva um programa para calcular a multiplicação de duas matrizes \(C = AB\), onde \(A\), \(B\) e \(C\) são matrizes de ordem \(n \times n\). Em seguida, compare o resultado obtido pela sua implementação com o resultado da função dot do pacote Numpy.

pass
  1. Crie uma matriz 4x3 com valores aleatórios inteiros entre 1 e 100. Em seguida imprima:

  • A matriz original

  • A matriz transposta (use .T)

pass
  1. Crie um array NumPy com 10 valores aleatórios entre 0 e 100. Normalize o array de modo que os valores fiquem entre 0 e 1, com a fórmula: xnormalizado = x - min(x)/max(x) - min(x)

pass
  1. Crie um matriz 3 x 4 com valores inteiros aleatórios entre 1 e 50. Depois calcule a média dos elementos de cada linha da matriz. Dica: use np.mean(matrzi, axis = 1)

pass
  1. Crie uma matriz 3x3 com valores inteiros aleatórios entre 1 e 10. Calcule o determinante dessa matriz usando np.linalg.det().

pass
  1. Crie uma matriz 5x3 com números inteiros aleatórios entre 10 e 99. Encontre o maior valor de cada coluna da matriz. Dica: use np.max(matriz, axis=0).

pass