복붙노트

[PYTHON] 파이썬에 내장 된 제품 ()이 있습니까? [복제]

PYTHON

파이썬에 내장 된 제품 ()이 있습니까? [복제]

튜토리얼과 책을 살펴 보았지만 sum ()과 같은 유형의 제품 함수에 대한 언급은 찾을 수 없지만 prod ()와 같은 것을 찾을 수는 없습니다.

mul () 연산자를 가져 와서 목록의 항목을 찾을 수있는 유일한 방법입니까?

해결법

  1. ==============================

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

    2.파이썬에는 제품이 없지만, 다음과 같이 정의 할 수 있습니다.

    파이썬에는 제품이 없지만, 다음과 같이 정의 할 수 있습니다.

    def product(iterable):
        return reduce(operator.mul, iterable, 1)
    

    또는 NumPy를 사용하는 경우 numpy.product를 사용하십시오.

  3. ==============================

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

    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에는 목록에 대한 많은 멋진 기능이 있습니다!

  5. from https://stackoverflow.com/questions/7948291/is-there-a-built-in-product-in-python by cc-by-sa and MIT license