Функция Numpy inner() возвращает внутреннее произведение векторов для одномерных массивов. Для более высоких измерений она возвращает суммарное произведение по последним осям.
- Что такое функция np.inner() в Python?
- Синтаксис
- Параметры
- Возвращаемое значение
- Когда возникает ValueError
- Примеры программ с методом numpy.inner()
- Демонстрация работы numpy.inner() с одномерным массивом/вектором
- Объяснение
- Программа для демонстрации работы метода numpy.inner() с многомерным массивом
- Объяснение
Что такое функция np.inner() в Python?
numpy.inner() в Python — это метод библиотеки numpy, используемый для вычисления внутреннего значения двух заданных входных массивов. В случае одномерных массивов возвращается обычное скалярное произведение векторов (без комплексного сопряжения), тогда как в случае более высоких размерностей в качестве результата возвращается сумма-произведение по последним осям.
Синтаксис
|
1 |
numpy.inner(arr1, arr2) |
Параметры
Функция inner() принимает не более двух параметров:
- arr1: array_like, первый входной массив.
- arr2: array_like, второй входной массив.
Если arr1 и arr2 не являются скалярами, их последние измерения должны совпадать.
Возвращаемое значение
out: ndarray
Метод возвращает n-мерный массив, содержащий скалярное произведение двух массивов arr1 и arr2. Форма выходного массива может быть рассчитана с использованием уравнения, приведенного как:
out.shape = arr1.shape[:-1] + arr2.shape[:-1]
Когда возникает ValueError
ValueError возникает, если последнее измерение arr1 и arr2 не совпадает.
Примеры программ с методом numpy.inner()
Демонстрация работы numpy.inner() с одномерным массивом/вектором
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# importing the numpy module import numpy as np # first 1-D array arr1 arr1 = np.array([2, 4, 6, 8]) # second 1-D array arr2 arr2 = np.array([1, 3, 5, 7]) # calculating inner product res = np.inner(arr1, arr2) print("Resultant array is : ", res) # first 1-D array arr1 arr3 = np.array([8+2j]) # second 1-D array arr2 arr4 = np.array([1+6j]) # calculating inner product' out = np.inner(arr3, arr4) print("Output array is : ", out) |
Выход
|
1 2 |
Resultant array is : 100 Output array is : (-4+50j) |
Объяснение
В приведенном выше коде мы взяли два одномерных входных массива с именами arr1 и arr2; мы отобразили вывод, отобразив внутренний продукт обоих массивов. В результате мы получаем скаляр, то есть 100.
Расчет может быть представлен в виде:
2*1 + 4*3 + 6*5 + 8*7 = 100
Кроме того, чтобы отобразить вычисление в случае комплексных чисел, мы взяли еще два вектора с именами arr3 и arr4, а затем вычислили их скалярное произведение. Полученный результат задается как -4+50j . Результат вычисления может быть показан как:
8*1 + 8*6j + 2j*1 + 2j*6j
= 8 + 48j + 2j -12
= -4 + 50j
Программа для демонстрации работы метода numpy.inner() с многомерным массивом
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# importing the numpy module import numpy as np # first 2D array arr1 arr1 = np.array([[3, 2], [0, 4]]) print("first array is :") print(arr1) # second 2D array arr1 arr2 = np.array([[1, 2], [3, 4]]) print("second array is :") print(arr2) # calculating inner product res = np.inner(arr1, arr2) print("Resultant array is :") print(res) |
Выход
|
1 2 3 4 5 6 7 8 9 |
first array is : [[3 2] [0 4]] second array is : [[1 2] [3 4]] Resultant array is : [[ 7 17] [ 8 16]] |
Объяснение
В приведенной выше программе мы взяли два разных двумерных массива с именами arr1 и другой массив с именем arr2. Затем мы отобразили вывод, отображая внутренний продукт обоих массивов. Результирующий массив также будет иметь форму(2,2).
Внутренний результат для приведенного выше примера можно рассчитать как:
3*1 + 2*2, 3*3 + 2*4
0*1 + 4*2, 0*3 + 4*4.
