使用chain和combinations_with_replacement命令转换数组中的值

时间:2017-04-17 06:29:03

标签: python arrays

我有一个包含多个数组的数据集,每个数组都有2个值。

我想创建一个接受输入(数据集,度)的函数,并对每个数组执行一些转换。也就是说,对于数组[x,y],我想返回一个新数组[1,x,y,xy,(x ^ 2)y,x(y ^ 2),...,(x ^度) y,x(y ^度)。

我尝试使用将所有子数组作为一个数组返回,然后我将在该数组上应用必要的转换,然后我将使用 combinations_with_replacement 使一个转换后的数组返回子数组。

如果我的问题不清楚,那么函数的一个例子就是f(([1,2],[3,4]),2)。这将返回([[1,1,2,2,2,4],[1,3,4,12,36,48]])。

1 个答案:

答案 0 :(得分:0)

我不确定这是否会产生您期望的输出,但它应该非常接近:

def powers(x, y, degree): # we'll assume degree >= 1
    result= [1, x, y, x*y]
    for i in range(2, degree+1):
        result.append(x**i *y)
        result.append(y**i *x)
    return result

def f(arrays, degree):
    return [powers(arr[0], arr[1], degree) for arr in arrays]