Вычислите величину (длину) вектора:

Https://youtu.be/6GoMXuE1FOw

# import Numpy
import numpy as np
v = np.array([1, 3, 4, 2])
# Calculate the length manually
norm = 0
for i in v:
    norm += i ** 2
norm **= 0.5
# Calculate the length using a numpy method
numpy = np.linalg.norm(v)
print(norm) # print long hand
print(numpy) # print numpy

Вычислите скалярное произведение двух векторов:

Https://youtu.be/ui-Pc7-wFko

# import Numpy
import numpy as np
u = np.array([-5, 3, 2, 8])
v = np.array([1, 2, -1, 0])
# Calculate the dot product manually
def dot_product(u, v):
    dot_product = 0
    for i, j in zip(u, v):
        dot_product += i * j
    return dot_product
dot_product = dot_product(u, v)
    
# Calculate the dot product using a numpy method
dot_product = np.dot(u, v)
dot_product # print the result

Вычислите скалярную проекцию двух векторов:

Https://youtu.be/WDdR5s0C4cY

# import Numpy
import numpy as np
u = np.array([10, 5, -6])
v = np.array([3, -4, 0])
# Calculate the scalar projection 
def scalar_projection(u, v):
    return np.dot(u, v) / np.linalg.norm(v)
scalar_projection(u, v) # print the result

Рассчитайте проекцию вектора двух векторов:

Https://youtu.be/gXn2wmZkpLI

u = np.array([10, 5, -6])
v = np.array([3, -4, 0])
# Calculate the vector projection manually
def projection_product(u, v):
    # scalar projection of u onto v
    projection = scalar_projection(u, v)
    # unit vector in the direction of v
    unit_vec_v = v / np.linalg.norm(v)
    # return the projection product
    return projection * unit_vec_v
projection_product(u, v) # print the result

Измените базис, когда новые базисные векторы ортогональны:

Https://youtu.be/7BFx8pt2aTQ

v = np.array([-4, -3, 8])
# new basis vectors
b_1 = np.array([1, 2, 3])
b_2 = np.array([-2, 1, 0])
b_3 = np.array([-3, -6, 5])
def change_basis(v, *args):
    v_in_b = np.zeros(len(args))
    for i, arg in enumerate(args):
        v_in_b[i] = scalar_projection(v, arg) / np.linalg.norm(arg)
return v_in_b
change_basis(v, b_1, b_2, b_3) # print the result