HOWTO · NumPy

NumPy에서 벡터로 행렬 나누기

파이썬에서 벡터로 행렬을 나누는 데 사용할 수있는 세 가지 주요 메서드, 배열 슬라이스 메서드, 전치 메서드 및 numpy.reshape() 함수가 있습니다.

이 페이지의 내용

이 튜토리얼에서는 NumPy에서 행렬을 벡터로 나누는 방법에 대해 설명합니다.

Python의 Array Slicing 방법을 사용하여 NumPy의 벡터로 행렬 나누기

행렬은 2D 배열이고 벡터는 1D 배열입니다. 행렬의 요소를 각 행의 벡터 요소로 나누려면 벡터에 새로운 차원을 추가해야합니다. 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.]]

위의 코드에서 우리는 행렬의 전치를 취하여 벡터로 나눴습니다. 그 후, 결과를 전치하여matrix에 저장했습니다.

numpy.reshape()함수를 사용하여 NumPy에서 벡터로 행렬 나누기

이 접근 방식의 기본 아이디어는 먼저 벡터를 2D 배열로 변환해야한다는 것입니다. numpy.reshape()함수를 사용하여 벡터를 각 행에 하나의 요소 만 포함하는 2D 배열로 변환 할 수 있습니다. 그런 다음 행렬의 각 행을 벡터의 각 행으로 쉽게 나눌 수 있습니다.

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.]]

위의 코드에서np.reshape()함수를 사용하여vector를 2D 배열로 변환했습니다. 그 후matrix를vector로 나누고 결과를matrix에 저장했습니다.