```python
import sys
import numpy as np
print(sys.version)
np.__version__
```

    3.9.7 (default, Sep 16 2021, 16:59:28) [MSC v.1916 64 bit (AMD64)]





    '1.20.3'




```python
#Criação de matriz com numpy matrix
matriz = np.matrix("1, 2, 3;4, 5, 6")
print(matriz)
```

    [[1 2 3]
     [4 5 6]]



```python
matriz2 = np.matrix([[1, 2, 3], [4, 5, 6]])
print(matriz2)
```

    [[1 2 3]
     [4 5 6]]



```python
matriz3 = np.matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(matriz3)
```

    [[1 2 3]
     [4 5 6]
     [7 8 9]]



```python
#traz a dimensão da matriz linha 1 coluna 1
matriz3[1, 1]
```




    5



### Matriz Esparsa

Uma matriz esparsa possui uma grande quantidade de elementos que valem zero (ou não presentes, ou não necessários). Matrizes esparsas têm aplicações em problemas de engenharia, física (por exemplo, o método das malhas para resolução de circuitos elétricos ou sistemas de equações lineares). Também têm aplicação em computação, como por exemplo em tecnologias de armazenamento de dados.

A matriz esparsa é implementada através de um conjunto de listas ligadas que apontam para elementos diferentes de zero. De forma que os elementos que possuem valor zero não são armazenados


```python
#importação de matriz esparsa do scipy
import scipy.sparse
```


```python
linhas = np.array([0,1,2,3])
colunas = np.array([1,2,3,4])
valores = np.array([10,20,30,40])
```


```python
#criação de matriz esparsa
mat = scipy.sparse.coo_matrix((valores, (linhas, colunas))) ; print(mat)
```

      (0, 1)	10
      (1, 2)	20
      (2, 3)	30
      (3, 4)	40



```python
#criação de matriz esparsa densa
print(mat.todense())
```

    [[ 0 10  0  0  0]
     [ 0  0 20  0  0]
     [ 0  0  0 30  0]
     [ 0  0  0  0 40]]



```python
#verifica se é uma matriz esparsa
scipy.sparse.isspmatrix_coo(mat)
```




    True



### Operações


```python
a = np.array([[1, 2], [3, 4]])
print(a)
```

    [[1 2]
     [3 4]]



```python
a * a
```




    array([[ 1,  4],
           [ 9, 16]])




```python
A = np.mat(a)
A
```




    matrix([[1, 2],
            [3, 4]])




```python
A * A
```




    matrix([[ 7, 10],
            [15, 22]])



## $$  \boxed{ \begin{align} \begin{pmatrix} 1 & 2    \\ 3 &  4   \end{pmatrix} & \begin{pmatrix} 1 & 2    \\ 3 &  4   \end{pmatrix}  = \begin{pmatrix} 7 & 10    \\ 15 &  22   \end{pmatrix} \end{align} }$$


```python
from IPython.display import Image
Image('cap3/imagens/Matriz.png')
```


```python
#Fazendo um array ter o mesmo comportamento de uma matriz
np.dot(a , a)
```




    array([[ 7, 10],
           [15, 22]])




```python
#Converter array para matriz
matrizA = np.asmatrix(a) ;matrizA
```




    matrix([[1, 2],
            [3, 4]])




```python
matrizA * matrizA
```




    matrix([[ 7, 10],
            [15, 22]])




```python
#converter matriz para array
arrayA = np.asarray(matrizA) ; arrayA
```




    array([[1, 2],
           [3, 4]])




```python
arrayA * arrayA
```




    array([[ 1,  4],
           [ 9, 16]])



49555fb7debfe6bbd49bdfc39b0ef947d8baa0e8
ipynb
Jupyter Notebook
NumPy/ArrayEmatrizNumpy.ipynb
DjCod3r/Jupyter
bbf8e0eb5ae766ef509968be79541eba9389c544
MIT
2022-03-03T14:40:51.000Z
2022-03-03T14:40:51.000Z
NumPy/ArrayEmatrizNumpy.ipynb
DjCod3r/Jupyter
bbf8e0eb5ae766ef509968be79541eba9389c544
MIT
NumPy/ArrayEmatrizNumpy.ipynb
DjCod3r/Jupyter
bbf8e0eb5ae766ef509968be79541eba9389c544
MIT
Qwen/Qwen-72B
1. YES
2. YES