當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。