用附加参数注册函数?

2024-06-01 01:08:49 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有办法用附加参数定义函数

我的功能目前的工作方式如下:

@vaex.register_function()
def abc(field)  :
        o = len( set(txt.str.split(' ')) )
        return o

df.func.field.abc()

我希望它大致如下:

@vaex.register_function()
def abc(field, arg2)    :
        o = len( set(txt.str.split(' ')) & set(arg2.split(' ')) )
        return o

df.func.field.abc(arg2)
 

目前我有:

arg2 = '  ...  '
df.apply(lambda a: abc(a,arg2), arguments=[df.field])

从我所读到的内容来看,这不是优化的,不是紧张和缓慢的,因为它是从“外部”应用的


Tags: txtregisterfielddflenreturndeffunction
1条回答
网友
1楼 · 发布于 2024-06-01 01:08:49

所以我相信你所寻找的是支持的。考虑这个例子:

import vaex
import vaex.ml

df = vaex.ml.datasets.load_iris()

@vaex.register_function()  # check the arguments here for more options
def my_func(x, number1=1, number2=10):
    return x * number1 + number2

df.sepal_length.my_func(number1=1, number2=2)

因此,上述方法应该是有效的

关于apply-在vaex4.x中apply是并行执行的。代码的效率与您所做的一样高

如果您为自己的工作构建自己的模块,并使用您经常使用的各种函数扩展vaex,则注册函数更方便。性能将取决于编写的代码

相关问题 更多 >