Data Science do zero: Primeiras regras com o Python


def vector_add(v, w): """soma elementos correspondentes""" return



Baixar 5.26 Mb.
Pdf preview
Página38/75
Encontro24.07.2022
Tamanho5.26 Mb.
#24344
1   ...   34   35   36   37   38   39   40   41   ...   75
Data Science do zero - Primeiras regras
def vector_add(v, w):
"""soma elementos correspondentes"""
return [v_i + w_i
for v_i, w_i in zip(v, w)]
Da mesma forma, para subtrair dois vetores, apenas subtraia os elementos
correspondentes:
def vector_subtract(v, w):
"""subtrai elementos correspondentes"""
return [v_i - w_i
for v_i, w_i in zip(v, w)]
Às vezes queremos somar uma lista de vetores. Ou seja, criar um vetor novo
cujo primeiro elemento seja a soma de todos os primeiros elementos, cujo


segundo elemento seja a soma de todos os segundos elementos, e assim por
diante. A maneira mais fácil de fazer isso é adicionar um vetor de cada vez:
def vector_sum(vectors):
"""soma toda os elementos correspondentes"""
result = vectors[0] # começa com o primeiro vetor
for vector in vectors[1:]: # depois passa por todos os outros
result = vector_add(result, vector) # e os adiciona ao resultado
return result
Se você pensar a respeito, estamos apenas reduzindo (reducing) a lista de vetores
usando
vector_ add
, o que significa que podemos reescrever de forma reduzida
usando funções de alta ordem:
def vector_sum(vectors):
return reduce(vector_add, vectors)
ou até mesmo:
vector_sum = partial(reduce, vector_add)
embora esse último seja mais esperto do que útil.
Também precisaremos ser capazes de multiplicar um vetor por um escalar, que
simplesmente fazemos ao multiplicar cada elemento do vetor por aquele número:
def scalar_multiply(c, v):
"""c é um número, v é um vetor"""
return [c * v_i for v_i in v]
Isso permite que computemos a média de uma lista de vetores (do mesmo
tamanho):
def vector_mean(vectors):
"""computar o vetor cujo i-ésimo elemento seja a média dos
i-ésimos elementos dos vetores inclusos"""
n = len(vectors)
return scalar_multiply(1/n, vector_sum(vectors))
Uma ferramenta menos óbvia é o produto escalar (dot product). O produto
escalar de dois vetores é a soma de seus produtos componente a componente:

Baixar 5.26 Mb.

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




©historiapt.info 2023
enviar mensagem

    Página principal