Python에서 두 목록 곱하기

Muhammad Waiz Khan 2023년1월30일
  1. zip()메서드를 사용하여 Python에서 두 목록 곱하기
  2. numpy.multiply()메서드를 사용하여 Python에서 두 목록을 곱합니다
  3. map()함수를 사용하여 Python에서 두 목록을 곱합니다
Python에서 두 목록 곱하기

이 튜토리얼은 Python에서 두 목록의 요소 별 곱셈을 수행하는 다양한 방법을 보여줍니다. 동일한 차원의 정수 목록 두 개가 있고 첫 번째 목록의 요소를 두 번째 목록의 동일한 위치에있는 요소와 곱하고 동일한 차원의 결과 목록을 가져 오려고한다고 가정합니다.

zip()메서드를 사용하여 Python에서 두 목록 곱하기

파이썬에 내장 된zip()메소드는 하나 이상의 이터 러블을 취하고 이터 러블을 튜플로 집계합니다. 리스트처럼[1,2,3][4,5,6][(1, 4), (2, 5), (3, 6)]이됩니다. map()메소드를 사용하여 두 목록 모두 요소별로 액세스하고 목록 이해 메소드를 사용하여 필요한 목록을 가져옵니다.

아래 코드 예제는 목록 이해력과 함께zip()을 사용하여 1D 및 2D 목록을 여러 개 만드는 방법을 보여줍니다.

list1 = [2, 4, 5, 3, 5, 4]
list2 = [4, 1, 2, 9, 7, 5]
product = [x * y for x, y in zip(list1, list2)]
print(product)

출력:

[8, 4, 10, 27, 35, 20]

2D 목록의 곱셈 :

list1 = [[2, 4, 5], [3, 5, 4]]
list2 = [[4, 1, 2], [9, 7, 5]]
product = [[0] * 3] * 2

for x in range(len(list1)):
    product[x] = [a * b for a, b in zip(list1[x], list2[x])]

print(product)

출력:

[[8, 4, 10], [27, 35, 20]]

numpy.multiply()메서드를 사용하여 Python에서 두 목록을 곱합니다

Python의NumPy 라이브러리의multiply()메소드는 두 개의 배열 / 목록을 입력으로 취하고 요소 별 곱셈을 수행 한 후 배열 / 목록을 반환합니다. 이 방법은 2D 곱셈을 위해 추가 작업을 할 필요가 없기 때문에 간단하지만,이 방법의 단점은NumPy 라이브러리 없이는 사용할 수 없다는 것입니다.

아래 코드 예제는numpy.multiply()메서드를 사용하여 Python에서 1D 및 2D 목록을 곱하는 방법을 보여줍니다.

  • 1D 곱셈 :
import numpy as np

list1 = [12, 3, 1, 2, 3, 1]
list2 = [13, 2, 3, 5, 3, 4]

product = np.multiply(list1, list2)
print(product)

출력:

[156   6   3  10   9   4]
  • 2D 곱셈 :
import numpy as np

list1 = [[12, 3, 1], [2, 3, 1]]
list2 = [[13, 2, 3], [5, 3, 4]]

product = np.multiply(list1, list2)
print(product)

출력:

[[156   6   3]
 [ 10   9   4]]

map()함수를 사용하여 Python에서 두 목록을 곱합니다

map 함수는 함수와 하나 이상의 이터 러블을 입력으로 취하고 입력 목록에 제공된 함수를 적용하여 이터 러블을 반환합니다.

두 목록을 인수로map()함수에 전달하여map()함수를 사용하여 Python에서 두 목록의 1D 및 2D 요소 별 곱셈을 수행 할 수 있습니다. 아래 코드 예제는map()을 사용하여 두 개의 Python 목록을 곱하는 방법을 보여줍니다.

1D 곱셈의 예제 코드 :

list1 = [2, 4, 5, 3, 5, 4]
list2 = [4, 1, 2, 9, 7, 5]
product = list(map(lambda x, y: x * y, list1, list2))
print(product)

출력:

[8, 4, 10, 27, 35, 20]

2D 곱셈에 대한 예제 코드 :

list1 = [[2, 4, 5], [3, 5, 4]]
list2 = [[4, 1, 2], [9, 7, 5]]
product = [[0] * 3] * 2

for x in range(len(list1)):
    product[x] = list(map(lambda a, b: a * b, list1[x], list2[x]))

print(product)

출력:

[[8, 4, 10], [27, 35, 20]]

관련 문장 - Python List