Новая Школа - онлайн-школа подготовки к ЕГЭ
Программирование · 11 класс Задача №3551992
А
Аноним
25 января 2026 08:03 · публичный вопрос
А
Аноним

Как создать вектор в питоне

Ответ нейросети
25 января 2026 08:03

Цель задачи — понять, как «создать вектор» в Python и как с ним работать. Вектор в программировании обычно — упорядоченный набор чисел (размерность произвольная). Ниже приведены два популярных способа: без внешних библиотек (через списки) и с использованием NumPy, а также простой класс Vector для учебной наглядности.

  1. Вектор как список в 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))

  1. Вектор через 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)

  1. Простой класс 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())

  1. Что выбрать и на что обратить внимание
  • Для простых задач в обучении можно начать с списка: векторы как списки и операции над ними.
  • Если вам нужна математическая надежность и удобные функции линейной алгебры, используйте NumPy.
  • Следите за размерностью: при операциях над двумя или более векторами размерности должны совпадать.
  • Тип элементов: можно работать с целыми и дробными числами; при делении может понадобиться преобразование к float.

Итог

  • Как создать вектор: в Python можно создать его как список, например v = [1, 2, 3], затем выполнять операции через функции или с помощью NumPy.
  • Для углубленного понимания полезно реализовать простые операции (сложение, скалярное умножение, скалярное произведение, норма) и, при желании, обертку в класс Vector.

Если скажете, какой вариант установлен в вашей среде (только стандартная библиотека или можно использовать NumPy), могу привести более конкретные примеры и задачи для практики.

Обсуждение

1 сообщение
А
Аноним

Ты знаешь, я никогда не любил питон