具有可变数量的numpy数组的Python函数

彼得潘

我有一个函数可以计算两个大型np.arrays(> 1000L,> 1000L)之间的比率:

def error(crm1, crm2):

    delta1 = np.zeros((crm1.shape[0], crm1.shape[1]))
    delta2 = np.zeros((crm2.shape[0], crm2.shape[1]))
    stt = np.int(crm1.shape[0])
    stp = np.int(crm1.shape[1])

    for m in xrange(stt):
        for n in xrange(stp):
            s1 = crm1[m, n]
            s2 = crm2[m, n]

            w1 = (min(s1, s2)**2)/s1
            w2 = (min(s1, s2)**2)/s2

        delta1[m, n] = w1
        delta2[m, n] = w2

    return (delta1, delta2)

现在我意识到我必须计算可变数量的np.arrays(相同维度和数据类型)之间的比率,例如:

# Case 1
error(array1, array2)

# Case 2
error(array1, array2, array3, array4)

# Case 3
error(array1, array2, array3, array4, array5, array6)

如果可能,我不想为每种情况编写代码,因为我有很多函数,例如error()函数。是否可以更改代码,以使函数可以使用可变数量的np.arrays?

卡米列里(P. Camilleri)

您可以使用*args(重要的是在参数名称前加上*,可以调用您的参数*foo)。您还应该使用numpy向量化,而不是遍历整个数组。

import numpy as np
def err(*args):
     # compute the pointwise min once and for all
     pointwise_min2 = np.minimum(*args)**2
     return tuple([pointwise_min2/arr for arr in args])

(如果所有数组都具有相同的形状,那是我假设的,因为否则您的问题中的计算是没有意义的)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python咖喱函数具有可变数量的参数

ArrayList 具有可变数量的数组

在Swift中将数组传递给具有可变数量args的函数

如何创建具有可变数量的参数的函数?

具有可变数量参数的函数的指针

具有可变数量参数的函数的通用打字稿

具有可变数量参数的OCaml函数

具有可变数量ifelse中断的R函数

具有可变数量表标题的 DataTables 呈现函数

制作可以具有可变数量元素的对象数组

是否可以创建具有可变数量的元素的数组?

Python Negative Lookbehind 具有可变数量的字符

具有可变数量的实参的脚本

我如何将数组作为args列表传递给C中具有可变数量参数的函数

函数中可变数量的循环(python)

如何创建具有可变数量的“ for”循环且每个循环具有不同索引的函数?

python 2.7,具有位置,关键字参数以及可变数量的参数(任意参数列表)的函数

如何在 Python 中使用字符串作为函数参数并具有可变数量的参数

如何从类似的函数调用具有可变数量的参数的函数?

pytorch / numpy中的部分切片,具有任意和可变数量的尺寸

在LLVM中,如何插入/声明具有可变数量的参数的函数?

如何将具有可变数量参数的函数分配给单个变量?

将列表传递给具有可变数量的args的函数

如何编写具有可变数量的输出参数的匿名函数?

具有可变数量/参数类型的函数的TypeScript声明文件

具有可变数量的特定模板类型参数的模板函数

如何使用指针编写具有可变数量的参数的函数?

具有特定类型的可变数量参数的 C++ 函数

用于函数scipy函数参数的多维numpy数组到可变数量的几个一维数组中