DevGang
Авторизоваться

Numpy Outer: Как вычислить произведение векторов в Python

Numpy outer() используется для вычисления внешнего произведения двух заданных векторов. Теперь вопрос в том, что такое внешний вектор? Предположим, у нас есть два вектора A [a, a1, a2, .. an] и B [b0, b1, b2,… bn], внешнее произведение этих двух векторов будет:

[[a0 * b0 a0 * b1 a0 * b2… a0 * bn]

  [a1 * b0 a0 * b1 a1 * b2… a1 * bn]
  [……………………………….] ] 

Numpy.outer()

Чтобы вычислить внешнее произведение двух векторов в Python, используйте функцию numpy outer().

Синтаксис

numpy.outer(arr1, arr2, out = None)

Параметры

Функция outer() принимает два основных параметра, а именно:

  1. arr1: это первый массив.
  2. arr2: это второй массив.

Также есть один необязательный параметр:

  1. out: это место, где сохраняется результат.

Возвращаемое значение

Функция outer() возвращает вектор, содержащий внешнее произведение заданных векторов.

Пример программирования

Программа для поиска двух числовых векторов

import numpy as np

# Declaring the first array
arr1 = np.array([-2, -1, 0, 1, 2, 3, 4, 5])
arr2 = np.array([0, 1, 2, 3, 4, 5, 6, 7])

print("First array is :\n", arr1)
print("Second array is :\n", arr2)

# Calculating the outer product
ans = np.outer(arr1, arr2)

print("Outer Product of these vectors are:\n", ans)

Результат

First array is :
 [-2 -1  0  1  2  3  4  5]
Second array is :
 [0 1 2 3 4 5 6 7]
Outer Product of these vectors are:
 [[  0  -2  -4  -6  -8 -10 -12 -14]
 [  0  -1  -2  -3  -4  -5  -6  -7]
 [  0   0   0   0   0   0   0   0]
 [  0   1   2   3   4   5   6   7]
 [  0   2   4   6   8  10  12  14]
 [  0   3   6   9  12  15  18  21]
 [  0   4   8  12  16  20  24  28]
 [  0   5  10  15  20  25  30  35]]

Объяснение

Сначала мы создали два массива. Затем мы распечатали эти два массива. Затем мы вызвали numpy.outer(), чтобы получить внешний вектор. Вывод производится с помощью метода np.outer().

Найдите произведение символов с помощью метода outer()

Что, если мы возьмем два массива, один из которых содержит символы, а другой - целые числа.

import numpy as np

# Declaring the first array
arr1 = np.array(['a', 'b', 'c', 'd'], dtype=object)
arr2 = np.array([1, 2, 3, 4])

print("First array is :\n", arr1)
print("Second array is :\n", arr2)

# Calculating the outer product
ans = np.outer(arr1, arr2)

print("Outer Product of these vectors are:\n", ans)

Результат

First array is :
 ['a' 'b' 'c' 'd']
Second array is :
 [1 2 3 4]
Outer Product of these vectors are:
 [['a' 'aa' 'aaa' 'aaaa']
 ['b' 'bb' 'bbb' 'bbbb']
 ['c' 'cc' 'ccc' 'cccc']
 ['d' 'dd' 'ddd' 'dddd']]

Объяснение

В этом примере мы сначала создали вектор символьного типа и один вектор, содержащий числовые значения. Теперь мы хотим вычислить внешнее векторное произведение этих двух векторов разных типов переменных.

Когда мы вызываем это, мы можем увидеть другой результат. Согласно правилу строк, когда мы умножаем любой символ / строку на любое число, мы получаем столько копий этого символа или строки. Как мы видим, a * 1 = a, a * 2 = aa и так далее.

Источник:

#Python #Numpy
Комментарии 1
Геннадий Ефимов 09.11.2024 в 11:45

походу ошибка в первом примере [[a0 * b0 a0 * b1 a0 * b2… a0 * bn]

[a1 * b0 a0 * b1 a1 * b2… a1 * bn] [……………………………….] ]

должно быть для второй строки матрицы [ ... [a1 * b0, a1 * b1, a1 * b2 ... a1 * bn] ... ]

Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу