Как создать вектор в питоне
Ответ нейросети
25 января 2026 08:03
Цель задачи — понять, как «создать вектор» в Python и как с ним работать. Вектор в программировании обычно — упорядоченный набор чисел (размерность произвольная). Ниже приведены два популярных способа: без внешних библиотек (через списки) и с использованием NumPy, а также простой класс Vector для учебной наглядности.
- Вектор как список в Python (без внешних зависимостей)
- Создание: v = [1, 2, 3]
- Размерность: n = len(v)
- Сложение двух векторов (поэлементно)
- Скалярное умножение
- Точечное произведение (скалярное произведение)
- Норма (модуль вектора)
Пример кода:
Создание вектора
v = [1, 2, 3] w = [4, 5, 6]
Проверка одинаковой размерности
if len(v) != len(w): raise ValueError("Векторы должны быть одной размерности")
Сложение векторов
def add(v1, v2): return [a + b for a, b in zip(v1, v2)]
Вычитание векторов (для полноты)
def sub(v1, v2): return [a - b for a, b in zip(v1, v2)]
Скаля́рное умножение (умножение на константу)
def scale(k, v1): return [k * x for x in v1]
Скаля́рное произведение (dot product)
def dot(v1, v2): return sum(a * b for a, b in zip(v1, v2))
Нормa (длина вектора)
import math def norm(v1): return math.sqrt(sum(x * x for x in v1))
Пример использования
print("v =", v) print("w =", w) print("v + w =", add(v, w)) print("|v| =", norm(v)) print("v · w =", dot(v, w))
- Вектор через NumPy (рекомендовано для линейной алгебры)
- NumPy ускоряет операции и предоставляет готовые функции.
- Пример: векторы как массивы numpy; операции выполняются напрямую.
Пример кода (нужна установка numpy: pip install numpy):
import numpy as np
v = np.array([1, 2, 3]) w = np.array([4, 5, 6])
Размерность
n = v.size # или len(v)
Сложение
s = v + w
Скаля́рное произведение
d = np.dot(v, w) # или v @ w
Норма (модуль)
norm_v = np.linalg.norm(v)
print("v =", v) print("w =", w) print("v + w =", s) print("v · w =", d) print("|v| =", norm_v)
- Простой класс Vector (для учебной практики)
Если хочется понимать принципы ООП и иметь компактный интерфейс, можно реализовать свой класс:
class Vector: def init(self, coords): #coords — итерируемый объект чисел self.coords = list(coords)
def __len__(self):
return len(self.coords)
def __repr__(self):
return f"Vector({self.coords})"
def add(self, other):
if len(self) != len(other):
raise ValueError("Векторы должны иметь одинаковую размерность")
return Vector(a + b for a, b in zip(self.coords, other.coords))
def sub(self, other):
if len(self) != len(other):
raise ValueError("Векторы должны иметь одинаковую размерность")
return Vector(a - b for a, b in zip(self.coords, other.coords))
def scale(self, k):
return Vector(k * x for x in self.coords)
def dot(self, other):
if len(self) != len(other):
raise ValueError("Векторы должны иметь одинаковую размерность")
return sum(a * b for a, b in zip(self.coords, other.coords))
def norm(self):
import math
return math.sqrt(sum(x * x for x in self.coords))
Пример использования
v = Vector([1, 2, 3]) w = Vector([4, 5, 6])
print("v =", v) print("v + w =", v.add(w)) print("v · w =", v.dot(w)) print("|v| =", v.norm())
- Что выбрать и на что обратить внимание
- Для простых задач в обучении можно начать с списка: векторы как списки и операции над ними.
- Если вам нужна математическая надежность и удобные функции линейной алгебры, используйте NumPy.
- Следите за размерностью: при операциях над двумя или более векторами размерности должны совпадать.
- Тип элементов: можно работать с целыми и дробными числами; при делении может понадобиться преобразование к float.
Итог
- Как создать вектор: в Python можно создать его как список, например v = [1, 2, 3], затем выполнять операции через функции или с помощью NumPy.
- Для углубленного понимания полезно реализовать простые операции (сложение, скалярное умножение, скалярное произведение, норма) и, при желании, обертку в класс Vector.
Если скажете, какой вариант установлен в вашей среде (только стандартная библиотека или можно использовать NumPy), могу привести более конкретные примеры и задачи для практики.
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



