SciPy - Funcionalidade Básica
Por padrão, todas as funções NumPy estão disponíveis por meio do namespace SciPy. Não há necessidade de importar as funções NumPy explicitamente, quando SciPy é importado. O principal objeto do NumPy é o array multidimensional homogêneo. É uma tabela de elementos (geralmente números), todos do mesmo tipo, indexados por uma tupla de inteiros positivos. Em NumPy, as dimensões são chamadas de eixos. O número deaxes é chamado de rank.
Agora, vamos revisar a funcionalidade básica de vetores e matrizes no NumPy. Como o SciPy é construído sobre os arrays NumPy, é necessário compreender os fundamentos do NumPy. Como a maioria das partes da álgebra linear trata apenas de matrizes.
Vetor NumPy
Um vetor pode ser criado de várias maneiras. Alguns deles são descritos a seguir.
Convertendo objetos do tipo array do Python em NumPy
Vamos considerar o seguinte exemplo.
import numpy as np
list = [1,2,3,4]
arr = np.array(list)
print arr
A saída do programa acima será a seguinte.
[1 2 3 4]
Criação intrínseca de matriz NumPy
NumPy tem funções integradas para criar matrizes do zero. Algumas dessas funções são explicadas a seguir.
Usando zeros ()
A função zeros (forma) criará uma matriz preenchida com 0 valores com a forma especificada. O dtype padrão é float64. Vamos considerar o seguinte exemplo.
import numpy as np
print np.zeros((2, 3))
A saída do programa acima será a seguinte.
array([[ 0., 0., 0.],
[ 0., 0., 0.]])
Usando uns ()
A função uns (forma) criará uma matriz preenchida com 1 valor. É idêntico a zeros em todos os outros aspectos. Vamos considerar o seguinte exemplo.
import numpy as np
print np.ones((2, 3))
A saída do programa acima será a seguinte.
array([[ 1., 1., 1.],
[ 1., 1., 1.]])
Usando arange ()
A função arange () criará matrizes com valores incrementais regularmente. Vamos considerar o seguinte exemplo.
import numpy as np
print np.arange(7)
O programa acima irá gerar a seguinte saída.
array([0, 1, 2, 3, 4, 5, 6])
Definindo o tipo de dados dos valores
Vamos considerar o seguinte exemplo.
import numpy as np
arr = np.arange(2, 10, dtype = np.float)
print arr
print "Array Data Type :",arr.dtype
O programa acima irá gerar a seguinte saída.
[ 2. 3. 4. 5. 6. 7. 8. 9.]
Array Data Type : float64
Usando linspace ()
A função linspace () criará matrizes com um número especificado de elementos, que serão espaçados igualmente entre os valores inicial e final especificados. Vamos considerar o seguinte exemplo.
import numpy as np
print np.linspace(1., 4., 6)
O programa acima irá gerar a seguinte saída.
array([ 1. , 1.6, 2.2, 2.8, 3.4, 4. ])
Matriz
Uma matriz é um array 2-D especializado que retém sua natureza 2-D por meio de operações. Tem certos operadores especiais, como * (multiplicação da matriz) e ** (potência da matriz). Vamos considerar o seguinte exemplo.
import numpy as np
print np.matrix('1 2; 3 4')
O programa acima irá gerar a seguinte saída.
matrix([[1, 2],
[3, 4]])
Transposição Conjugada de Matriz
Este recurso retorna a transposta conjugada (complexa) de self. Vamos considerar o seguinte exemplo.
import numpy as np
mat = np.matrix('1 2; 3 4')
print mat.H
O programa acima irá gerar a seguinte saída.
matrix([[1, 3],
[2, 4]])
Transpor Matrix
Esse recurso retorna a transposição do self. Vamos considerar o seguinte exemplo.
import numpy as np
mat = np.matrix('1 2; 3 4')
mat.T
O programa acima irá gerar a seguinte saída.
matrix([[1, 3],
[2, 4]])
Quando transpomos uma matriz, fazemos uma nova matriz cujas linhas são as colunas da original. Uma transposição conjugada, por outro lado, troca o índice da linha e da coluna para cada elemento da matriz. O inverso de uma matriz é uma matriz que, se multiplicada pela matriz original, resulta em uma matriz identidade.