当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python cudf.Series.applymap用法及代码示例


用法:

Series.applymap(udf, out_dtype=None)

应用元素函数来转换列中的值。

用户函数应接受一个参数并返回结果,该结果将存储到输出系列中。除了其他简单的标量对象外,该函数不能引用全局变量。

参数

udf函数

可调用的 Python 函数或已由 numba.cuda.jit 修饰的 Python 函数,用于作为设备在 GPU 上调用

out_dtypenumpy.dtype;可选的

用于输出的 dtype。仅用于numba.cuda.jit 装饰的 udf。默认情况下,结果将具有与源相同的 dtype。

返回

resultSeries

掩码和索引被保留。

注意

支持的 Python 函数在

除了这些异常:

  • cmath 中的数学函数不受支持,因为 libcudf 不支持复数,并且 cmath 函数的输出很可能是复数。
  • math 中的这五个函数不受支持,因为 numba 从它们生成多个 PTX 函数
    • 数学。sin()
    • 数学。cos()
    • 数学。tan()
    • 数学。gamma()
    • 数学。lgamma()
  • applymap 方法不支持具有字符串 dtype 的系列。
  • 全局变量需要在 udf 中显式地重新定义,因为 numba 认为它们是编译时常量,并且没有已知的方法来获取全局变量的值。

例子

仅使用文字模式返回一系列布尔值。

>>> import cudf
>>> s = cudf.Series([1, 10, -10, 200, 100])
>>> s.applymap(lambda x: x)
0      1
1     10
2    -10
3    200
4    100
dtype: int64
>>> s.applymap(lambda x: x in [1, 100, 59])
0     True
1    False
2    False
3    False
4     True
dtype: bool
>>> s.applymap(lambda x: x ** 2)
0        1
1      100
2      100
3    40000
4    10000
dtype: int64
>>> s.applymap(lambda x: (x ** 2) + (x / 2))
0        1.5
1      105.0
2       95.0
3    40100.0
4    10050.0
dtype: float64
>>> def cube_function(a):
...     return a ** 3
...
>>> s.applymap(cube_function)
0          1
1       1000
2      -1000
3    8000000
4    1000000
dtype: int64
>>> def custom_udf(x):
...     if x > 0:
...         return x + 5
...     else:
...         return x - 5
...
>>> s.applymap(custom_udf)
0      6
1     15
2    -15
3    205
4    105
dtype: int64

相关用法


注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cudf.Series.applymap。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。