Разделить матрицу на вектор в NumPy

  1. Разделить матрицу на вектор в NumPy с помощью метода нарезки массива в Python
  2. Разделить матрицу на вектор в NumPy с помощью метода транспонирования в NumPy
  3. Разделить матрицу на вектор в NumPy с помощью функции numpy.reshape()

В этом руководстве будут обсуждаться методы деления матрицы на вектор в NumPy.

Разделить матрицу на вектор в NumPy с помощью метода нарезки массива в Python

Матрица - это двумерный массив, а вектор - это просто одномерный массив. Если мы хотим разделить элементы матрицы на элементы вектора в каждой строке, мы должны добавить к вектору новое измерение. Мы можем добавить новое измерение к вектору с помощью метода нарезки массива в Python. В следующем примере кода показано, как разделить каждую строку матрицы на вектор с помощью метода нарезки массива в Python.

import numpy as np

matrix = np.array([[2,2,2],[4,4,4],[6,6,6]])

vector = np.array([2,4,6])

matrix = matrix / vector[:,None]
print(matrix)

Выход:

[[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]

Сначала мы создали матрицу и вектор с помощью функции np.array(). Затем мы добавили новую ось к вектору с помощью метода нарезки. Затем мы разделили матрицу на массив и сохранили результат внутри матрицы.

Разделить матрицу на вектор в NumPy с помощью метода транспонирования в NumPy

Мы также можем транспонировать матрицу, чтобы разделить каждую строку матрицы на каждый элемент вектора. После этого мы можем транспонировать результат, чтобы вернуться к предыдущей ориентации матрицы. См. Следующий пример кода.

import numpy as np

matrix = np.array([[2,2,2],[4,4,4],[6,6,6]])

vector = np.array([2,4,6])

matrix = (matrix.T / vector).T
print(matrix)

Выход:

[[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]

В приведенном выше коде мы взяли транспонированную матрицу и разделили ее на вектор. После этого мы сделали транспонирование результата и сохранили его внутри матрицы.

Разделить матрицу на вектор в NumPy с помощью функции numpy.reshape()

Вся идея этого подхода заключается в том, что мы должны сначала преобразовать вектор в 2D-массив. Функцию numpy.reshape() можно использовать для преобразования вектора в двумерный массив, где каждая строка содержит только один элемент. Затем мы можем легко разделить каждую строку матрицы на каждую строку вектора.

import numpy as np

matrix = np.array([[2,2,2],[4,4,4],[6,6,6]])

vector = np.array([2,4,6])

matrix = matrix / vector.reshape((3,1))
print(matrix)

Выход:

[[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]

В приведенном выше коде мы преобразовали vector в 2D-массив с помощью функции np.reshape(). После этого мы разделили matrix на vector и сохранили результат внутри matrix.

Сопутствующая статья - NumPy Matrix

  • Вычислить мощность матрицы NumPy
  • Вычитание матрицы NumPy
  • Индексирование матрицы NumPy