파이썬에서 자기란 무엇인가: 실제 사례
파이썬에서 자기란 무엇인가: 실제 사례
Python에서 목록을 곱하는 것은 수학적 계산을 수행하거나 데이터 조작 문제를 해결할 때 일반적인 작업입니다. 요구 사항과 사용 가능한 라이브러리에 따라 이 작업을 수행하는 방법에는 여러 가지가 있습니다.
Python에서 목록을 곱하려면 for 루프, 목록 이해, zip 및 맵 함수 또는 내장 functools 모듈을 사용할 수 있습니다. NumPy와 같은 외부 Python 라이브러리의 함수를 사용할 수도 있습니다.
이 문서에서는 목록을 곱하는 다양한 방법을 각각 코드 예제와 설명된 결과와 함께 보여줍니다.
시작하자!
목차
Python의 숫자 목록 곱셈의 2가지 유형
특정 메서드에 대해 알아보기 전에 해당 메서드가 달성하는 목록 곱셈의 유형을 이해해야 합니다.
Python에는 목록 곱셈이라는 광범위한 용어에 속하는 여러 가지 개념이 있습니다. 여기에는 목록을 복제하거나 목록 내 요소의 데카르트 곱을 달성하는 것이 포함됩니다.
대신 이 문서에서는 목록 내 요소의 두 가지 유형의 산술 곱셈에 중점을 둡니다.
값으로 곱하기
요소별 곱셈
이 두 가지 개념을 간단히 살펴보겠습니다.
1. 값으로 곱하기
정수 목록이 있는 경우 각 요소에 특정 값을 곱할 수 있습니다. 예를 들어 목록 [1, 2, 3]이 있고 각 요소에 값 3을 곱하려고 합니다.
다음 코드에서와 같이 곱셈 연산자를 사용하려고 (잘못) 시도할 수 있습니다.
list1 = [1, 2, 3]
result = list1 * 3
결과가 [1, 2, 3, 1, 2, 3, 1, 2, 3]이라는 사실에 놀랄 수도 있습니다. 이를 목록 복제 라고 합니다 .
2. 요소별 목록 곱셈
[1, 2, 3] 및 [4, 5, 6]의 두 목록이 있다고 가정합니다.
목록 내의 동일한 인덱스에 있는 요소를 곱하여 [4, 10, 18]을 결과로 생성하려고 합니다.
'*' 연산자를 사용하여 두 개의 Python 목록을 함께 곱하려고 하면 오류가 발생합니다.
TypeError: 시퀀스에 'list' 형식의 비 int를 곱할 수 없습니다.
이것은 곱셈 연산자가 정수나 실수와 같은 방식으로 목록과 작동하도록 설계되지 않았기 때문입니다. 대신 목록을 곱하려면 요소별 곱셈이라는 작업이 필요합니다.
요소별 곱셈은 두 목록의 해당 요소를 쌍으로 만들고 함께 곱하여 새 목록을 형성합니다.
이제 이 두 가지 개념을 이해했습니다. 올바른 결과를 얻기 위해 다양한 기술을 사용해 봅시다.
Python에서 여러 목록 요소에 For 루프를 사용하는 방법
목록 요소에 값을 곱한다고 가정합니다 . 이 접근 방식의 경우 for 루프를 사용하여 요소를 반복 하고 각각에 두 번째 값을 곱할 수 있습니다.
다음은 하나의 목록이 있는 예입니다. 결과 변수는 출력 목록을 보유합니다.
list1 = [1, 2, 3, 4]
factor = 3
result = []
for element in list1:
result.append(element * factor)
이 경우 결과 목록은 [3, 6, 9, 12]가 됩니다.
곱셈에 목록 내포를 사용하는 방법
목록 내포는 목록 곱셈의 숫자 유형을 수행하는 간결한 방법을 제공합니다. for 루프 를 사용하는 것과 동일한 결과를 얻지 만 더 간단한 구문을 사용합니다.
다음은 목록 이해를 사용하는 이전 예제입니다.
list1 = [1, 2, 3, 4]
factor = 3
result = [element * factor for element in list1]
이 코드는 이전과 동일한 출력을 생성합니다: [3, 6, 9, 12].
요소별 곱셈에 Zip 함수를 사용하는 방법
두 개의 정수 목록이 있는 경우 목록을 요소별로 곱할 수 있습니다. 즉, 첫 번째 목록의 첫 번째 요소와 두 번째 목록의 첫 번째 요소를 곱하는 식으로 동일한 위치의 요소를 곱합니다.
zip () 함수는 목록 내포와 결합할 때 이를 달성할 수 있습니다.
이 함수는 두 입력 목록의 요소를 결합하여 병렬로 반복할 수 있도록 합니다. 다음은 동일한 크기의 목록을 사용하는 예입니다.
list1 = [1, 2, 3, 4]
list2 = [2, 3, 4, 5]
result = [a * b for a, b in zip(list1, list2)]
이 경우 결과 변수는 [4, 10, 18] 결과 목록을 보유합니다.
튜플 및 생성자 작업
때로는 간단한 정수가 아닌 튜플을 포함하는 목록으로 작업해야 할 수도 있습니다.
튜플 의 두 목록을 곱하려면 다음 조합을 사용할 수 있습니다.
zip() 함수
튜플 생성자
목록 이해
예를 들면 다음과 같습니다.
list1 = [(1, 2), (3, 4)]
list2 = [(5, 6), (7, 8)]
result = [tuple(a * b for a, b in zip(t1, t2)) for t1, t2 in zip(list1, list2)]
결과는 [(5, 12), (21, 32)]입니다.
Python에서 맵 및 Lambda 함수를 사용하는 방법
Python의 map 함수는 목록처럼 반복 가능한 각 항목에 함수를 적용하는 편리한 방법입니다.
Python의 람다 함수는 작은 익명 함수입니다. 이름이 없는 함수라는 뜻입니다.
두 목록을 요소별로 곱하기 위해 다음과 같이 map 및 lambda 함수를 결합할 수 있습니다.
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = list(map(lambda x, y: x * y, list1, list2))
결과 변수는 곱한 목록��� 보유합니다: [4, 10, 18].
Python에서 연산자 모듈을 사용하는 방법
연산자 모듈은 다양한 데이터 구조 및 유형 작업에 유용한 기능을 풍부하게 제공합니다.
operator.mul () 함수는 map 함수와 결합할 때 정수 목록을 곱하는 데 사용할 수 있습니다.
import operator
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = list(map(operator.mul, list1, list2))
이 예제에서는 연산자 모듈을 가져오고 Python의 내장 map() 함수 와 함께 mul() 함수를 사용하여 두 목록의 각 요소를 곱합니다.
결과 변수는 곱한 목록을 보유합니다: [4, 10, 18].
NumPy 라이브러리: 배열 및 곱하기 함수
NumPy 라이브러리는 수치 계산 및 배열 작업 에 널리 사용되는 Python의 강력한 외부 라이브러리입니다. 이 라이브러리는 대형 배열 또는 다차원 배열을 처리할 때 특히 효율적입니다.
NumPy를 사용하려면 pip를 사용하여 설치할 수 있습니다.
pip install numpy
NumPy를 사용하여 두 목록에서 요소별 곱셈을 수행하려면 다음 일반 단계를 따르십시오.
numpy.array() 를 사용하여 각 목록을 NumPy 배열로 변환합니다 .
NumPy 곱하기 함수를 사용하여 곱셈을 수행합니다.
선택적으로 tolist() 메서드를 사용하여 결과를 Python 목록으로 다시 변환합니다.
다음은 코드 예제입니다.
import numpy as np
list1 = [1, 2, 3]
list2 = [4, 5, 6]
arr1 = np.array(list1)
arr2 = np.array(list2)
res_arr = np.multiply(arr1, arr2)
result = res_arr.tolist()
이전 예제와 동일한 결과가 반환됩니다: [4, 10, 18].
Python에서 Functools와 NumPy를 결합하는 방법
functools 라이브러리에는 특정 기능을 목록의 항목에 누적적으로 적용하여 목록을 단일 값으로 줄이는 축소 기능이 포함되어 있습니다 .
reduce() 함수를 사용하여 두 목록을 곱하려면 NumPy 라이브러리의 곱하기 함수와 결합할 수 있습니다.
다음은 예입니다.
from functools import reduce
import numpy as np
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = reduce(np.multiply, [list1, list2])
이 코드는 필요한 라이브러리를 가져오고 numpy.multiply() 와 함께 reduce() 함수를 사용하여 두 목록의 요소별 곱셈을 수행합니다.
Python에서 목록 및 기타 데이터 구조 작업
데이터 분석의 대부분의 측면에는 목록, 집합 및 기타 데이터 구조 작업이 필요합니다. 예를 들어 누락된 데이터를 보간으로 처리할 때 사용할 지식을 입력합니다.
몇 가지 고급 기술에 대해서는 이 비디오를 확인하십시오.
마지막 생각들
Python에서 목록을 산술적으로 곱하는 다양한 방법을 배웠습니다. 일부는 내장 모듈과 기능만 사용하고 다른 일부는 타사 라이브러리에 의존합니다.
요소별 곱셈을 수행하는 기능은 무수한 응용 프로그램의 문을 엽니다. 데이터 분석에서 기계 학습에 이르기까지 이러한 작업은 많은 알고리즘 및 계산 작업의 필수 부분입니다.
이 기사는 곱셈에 중점을 두었지만 배운 개념은 다른 연산에도 적용됩니다. 요소별 덧셈, 뺄셈, 나눗셈도 거의 같은 방식으로 수행할 수 있습니다.
이러한 개념을 확고히 하는 가장 좋은 방법은 적용하는 것임을 기억하십시오. 그러니 계속해서 Python 환경을 시작하고 실험을 시작하십시오. 작업을 자동화하든, 데이터를 조작하든, 복잡한 소프트웨어를 구축하든, 이러한 기술은 확실히 유용할 것입니다.
행복한 파이썬!
파이썬에서 자기란 무엇인가: 실제 사례
R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.
이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.
이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.
이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.
LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.
LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.
이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.
지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.
LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것