如何解决注册带有附加参数的函数?
有没有办法定义一个带有附加参数的函数?
我的函数目前的工作方式如下:
@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])
从我读过的内容来看,它没有经过优化,没有抖动和缓慢,因为它是从“外部”应用的
解决方法
所以我相信你正在寻找的东西是支持的。考虑以下示例:
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
- 在 vaex 4.x 中 apply
是并行执行的。代码与您编写的一样高效。
注册功能更方便,如果你为自己的工作构建自己的模块,并用你经常使用的各种功能扩展vaex。性能将取决于编写的代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。