[PYTHON] 파이썬에 내장 된 제품 ()이 있습니까? [복제]
PYTHON파이썬에 내장 된 제품 ()이 있습니까? [복제]
튜토리얼과 책을 살펴 보았지만 sum ()과 같은 유형의 제품 함수에 대한 언급은 찾을 수 없지만 prod ()와 같은 것을 찾을 수는 없습니다.
mul () 연산자를 가져 와서 목록의 항목을 찾을 수있는 유일한 방법입니까?
해결법
-
==============================
1.네, 맞습니다. Guido는 거의 필요하지 않다고 생각하여 내장 된 prod () 함수에 대한 아이디어를 거부했습니다.
네, 맞습니다. Guido는 거의 필요하지 않다고 생각하여 내장 된 prod () 함수에 대한 아이디어를 거부했습니다.
당신이 제안했듯이, reduce ()와 operator.mul ()을 사용하여 자신 만의 것을 만드는 것은 어렵지 않습니다 :
def prod(iterable): return reduce(operator.mul, iterable, 1) >>> prod(range(1, 5)) 24
Python 3에서는 reduce () 함수가 functools 모듈로 옮겨 졌으므로 다음을 추가해야합니다.
from functools import reduce
부수적으로, prod ()의 주요 사용 유스 케이스는 계승을 계산하는 것입니다. 우리는 이미 수학 모듈에서이를 지원합니다.
>>> import math >>> math.factorial(10) 3628800
데이터가 실수로 구성된 경우 지수 및 로그를 사용하여 sum ()을 사용하여 제품을 계산할 수 있습니다.
>>> from math import log, exp >>> data = [1.2, 1.5, 2.5, 0.9, 14.2, 3.8] >>> exp(sum(map(log, data))) 218.53799999999993 >>> 1.2 * 1.5 * 2.5 * 0.9 * 14.2 * 3.8 218.53799999999998
-
==============================
2.파이썬에는 제품이 없지만, 다음과 같이 정의 할 수 있습니다.
파이썬에는 제품이 없지만, 다음과 같이 정의 할 수 있습니다.
def product(iterable): return reduce(operator.mul, iterable, 1)
또는 NumPy를 사용하는 경우 numpy.product를 사용하십시오.
-
==============================
3.reduce () 함수는 python 3.0에서 제거 되었기 때문에 다른 접근법을 취해야합니다.
reduce () 함수는 python 3.0에서 제거 되었기 때문에 다른 접근법을 취해야합니다.
functools.reduce ()를 사용하여 변경을 불행하게 만들 수 있습니다.
product = functools.reduce(operator.mul, iterable, 1)
또는 python-team (reduce ()가 더 읽기 쉽다고 생각했기 때문에 제거 된)의 정신을 따르려면 루프를 사용하십시오.
product = 1 for x in iterable: product *= x
-
==============================
4.
from numpy import multiply, product list1 = [2,2,2] list2 = [2,2,2] mult = 3 prod_of_lists = multiply(list1,list2) >>>[4,4,4] prod_of_list_by_mult = multiply(list1,mult) >>>[6,6,6] prod_of_single_array = product(list1) >>>8
numpy에는 목록에 대한 많은 멋진 기능이 있습니다!
from https://stackoverflow.com/questions/7948291/is-there-a-built-in-product-in-python by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 목록의 목록으로 2 차원 numpy 배열을 변환 [중복] (0) | 2018.10.29 |
---|---|
[PYTHON] Atom에서 Python 실행하기 (0) | 2018.10.29 |
[PYTHON] 키 값 쌍을 포함하는 문자열에서 파이썬 사전 가져 오기 (0) | 2018.10.29 |
[PYTHON] 파이썬 : 다중 처리 풀을 사용하는 동안 큐가있는 단일 파일에 쓰기 (0) | 2018.10.29 |
[PYTHON] OpenCV 도트 타겟 탐지가 모든 타겟을 찾지 못하고, 발견 된 원이 상쇄됩니다. (0) | 2018.10.29 |