Data Science do zero: Primeiras regras com o Python


def dot(v, w): """v_1 * w_1 + ... + v_n * w_n""" return



Baixar 5.26 Mb.
Pdf preview
Página39/75
Encontro24.07.2022
Tamanho5.26 Mb.
#24344
1   ...   35   36   37   38   39   40   41   42   ...   75
Data Science do zero - Primeiras regras
def dot(v, w):
"""v_1 * w_1 + ... + v_n * w_n"""
return sum(v_i * w_i
for v_i, w_i in zip(v, w))


O produto escalar mede a distância a qual o vetor
v
se estende na direção de
w
.
Por exemplo, se
w = [1, 0]
então
dot(v, w)
é o primeiro componente de
v
. Outra forma
de dizer isso é que esse é o tamanho do vetor que você teria se projetasse
v
em
w
(Figura 4-2).
Figura 4-2. O produto escalar como projeção de vetor
Assim, é fácil computar a soma dos quadrados de um vetor:
def sum_of_squares(v):
"""v_1 * v_1 + ... + v_n * v_n"""
return dot(v, v)
Que podemos usar para computar sua magnitude (ou tamanho):
import math
def magnitude(v):
return math.sqrt(sum_of_squares(v)) # math.sqrt é a função da raiz quadrada
Agora temos todas as peças das quais precisamos para computar a distância entre


dois vetores, definida como:
def squared_distance(v, w):
"""(v_1 - w_1) ** 2 + ... + (v_n - w_n) ** 2"""
return sum_of_squares(vector_subtract(v, w))
def distance(v, w):
return math.sqrt(squared_distance(v, w))
Que fica mais claro se escrevermos como (o equivalente):
def distance(v, w):
return magnitude(vector_subtract(v, w))
Isso deve ser o suficiente para começarmos; usaremos essas funções
constantemente no decorrer do livro.
Usar listas como vetores é bom para a exposição, mas terrível para o desempenho.
Na produção de código, você pode querer usar a biblioteca NumPy, que inclui uma
classe de array de alta performance com todos os tipos de operações matemáticas
inclusas.


Matrizes
Uma matriz é uma coleção de números bidimensional. Representaremos as
matrizes como
list
as de
list
as, com cada lista interior possuindo o mesmo tamanho
e representando uma linha da matriz. Se
A
é uma matriz, logo
A[i][j]
é o elemento
da i-ésima linha e j-ésima da coluna. Por convenção matemática, geralmente
usaremos letras maiúsculas para representar matrizes. Por exemplo:
A = [[1, 2, 3], # A possui duas linhas e três colunas
[4, 5, 6]]
B = [[1, 2], # B possui três linhas e duas colunas
[3, 4],
[5, 6]]
Na matemática, normalmente nomearíamos a primeira linha da matriz de “linha 1” e
a primeira coluna de “coluna 1”. Já que estamos representando matrizes com as listas
de Python, que são indexadas em zero, chamaremos a primeira linha de uma matriz
de “linha 0” e a primeira coluna de “coluna 0”.
Dada esta representação de lista-das-listas, a matriz
A
possui as linhas
len(A)
e
colunas
len(A[0])
, que consideramos desta forma (shape):

Baixar 5.26 Mb.

Compartilhe com seus amigos:
1   ...   35   36   37   38   39   40   41   42   ...   75




©historiapt.info 2022
enviar mensagem

    Página principal