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.