python“binom”具有较少的依赖项?

时间:2018-02-14 00:44:25

标签: python python-3.x amazon-web-services lambda

我的Python 3.6脚本适用于

from scipy.special import binom

然而,在AWS lambda中运行代码不起作用。尝试从S3加载压缩部署包会出现错误:

Unzipped size must be smaller than 262144000 bytes

肯定在某个地方有一个Python包可以做什么“binom”而不需要所有“scipy”似乎需要“numpy”?

1 个答案:

答案 0 :(得分:1)

The binomial coefficient is a known and fairly trivial calculation; binom(n, k)只是n! / (k! * (n - k)!)。 Python内置函数可以非常直接地执行此操作(如果理论上是次优的,因为它可以生成过多的中间体,更多调优的方法可以避免,但在大多数情况下它几乎不重要)方式:

from math import factorial

def binom(n, k):
    return factorial(n) // (factorial(k) * factorial(n - k))

如果您需要更快一点,gmpy2 offers a bincoef functiongmpy2scipy / numpy更独立(它需要GMP / MPFR / MPC,但它& #39;大约几MB的二进制文件的顺序,而不是几个 MB)。它返回一个gmpy2.mpz类型,它与int基本上可互操作,或者您可以通过换行强制转换回int

from gmpy2 import bincoef

def binom(n, k):
    return int(bincoef(n, k))