# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: Python 3 (ipykernel)
#     language: python
#     name: python3
# ---

# ## Nome: <NAME>

import numpy as np

# ### 1. Considere as seguintes matrizes:

A= np.array([[2,3,4],[1,2,4]])
A

B= np.array([[7,3],[0,3],[10,0]])
B

# ### Verifique se é possivel a multiplicação de A*B, caso seja, multiplique e depois concatenate por coluna a primeira linha de A com a segunda coluna de B.

dimensao_A = A.ndim
numero_linha_A = A.shape[0]
numero_coluna_A = A.shape[1]
dimensao_B = B.ndim
numero_linha_B = B.shape[0]
numero_coluna_B = B.shape[1]
if ((dimensao_A == dimensao_B) and (numero_linha_A == numero_coluna_B) and (numero_coluna_A == numero_linha_B)):
    print("Possível a multiplicação")

print(A.dot(B)) # multiplicacao A*B
A[0,].reshape(-1,1) # primeira linha de A em formato de coluna
B[:,[1]].shape # segunda coluna de B
np.hstack((A[0,].reshape(-1,1), B[:,[1]])) # concatenacao por coluna da primeira linha de A com a segunda coluna de B

# ### 2. Acesse os elementos comuns entre a e b usando numpy

a = np.array([1,2,3,2,3,4,3,4,5,6])
b = np.array([7,2,10,2,7,4,9,4,9,8])

np.intersect1d(a, b)

# ### 3. Mostre as posições onde os dois vetores são iguais usando numpy

a = np.array([1,2,3,2,3,4,3,4,5,6])
b = np.array([7,2,10,2,7,4,9,4,9,8])

np.where(np.equal(a, b)) # exibe as posicoes onde os valores sao iguais

# ### 4. Transforme os seguintes objetos em np.array:

a=[[1,2], [4, 5]]
a

b=(1,2,4,8)
b

c={1,2,6}
c

print(np.array(a))
print(np.array(b))
print(np.array(list(c))) # converte o set em uma lista depois converte para numpy array

# ### 5. Considere o seguinte vetor:

x=np.array([[7,3],[0,3],[10,0]])
x

# - Acesse o elemento da segunda linha e primeira coluna
# - Acesse a segunda coluna
# - Acesse as duas últimas linhas das duas colunas
# - Acesse o elemento da terceira linha e segunda coluna

x[1,0]

x[:,[1]]

x[1:3,]

x[2,1]

# ## Exercícios para casa

# ### 6. Selecione as duas primeiras colunas de A, em seguida, calcule o determinante de A, caso seja invertível, calcule sua matriz inversa.

A= np.array([[2,3,4],[1,2,4]])
A

colunas_A = A[:,[0, 1]] # duas primeiras colunas de A
print(colunas_A)

np.linalg.det(colunas_A) # determinante das duas primeiras colunas de A

np.linalg.inv(colunas_A) # inversa das duas primeiras colunas de A

# ### 7.  Considere a seguinte matriz:

x=np.random.normal(0, 1, (3,3))
x

# #### Crie um vetor para cada situação a seguir:
# 1. Com os elementos maiores que a média.
# 2. Com os elementos menores que a mediana
# 3. Com os elementos positivos

print(np.mean(x))
x[x > np.mean(x)]

print(np.median(x))
x[x < np.median(x)]

x[x > 0]

# ### 8. Selecione o valor mais frequente do seguinte vetor

x=np.array([2,2,3,5,2,8])
x

counts = np.bincount(x) # contagem de ocorrencia dos elementos inteiros de um vetor
print (counts) # posicao 2 contagem 3 significa que o numero 2 apareceu 3 vezes no vetor x

print(np.argmax(counts)) # retornar o indice com maior contagem de ocorrencia, significa que o 2 e o valor mais frequente

StarcoderdataJupyterScriptsDedupFiltered