我的Python 3.6脚本适用于
from scipy.special import binom
然而,在AWS lambda中运行代码不起作用。尝试从S3加载压缩部署包会出现错误:
Unzipped size must be smaller than 262144000 bytes
肯定在某个地方有一个Python包可以做什么“binom”而不需要所有“scipy”似乎需要“numpy”?
答案 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
function和gmpy2
比scipy
/ numpy
更独立(它需要GMP / MPFR / MPC,但它& #39;大约几MB的二进制文件的顺序,而不是几个百 MB)。它返回一个gmpy2.mpz
类型,它与int
基本上可互操作,或者您可以通过换行强制转换回int
:
from gmpy2 import bincoef
def binom(n, k):
return int(bincoef(n, k))