turicreate.SArray.apply — Turi Create API 6.4.1 documentation (original) (raw)
SArray.
apply
(fn, dtype=None, skip_na=True)¶
Transform each element of the SArray by a given function. The result SArray is of type dtype
. fn
should be a function that returns exactly one value which can be cast into the type specified bydtype
. If dtype
is not specified, the first 100 elements of the SArray are used to make a guess about the data type.
Parameters: | fn : function The function to transform each element. Must return exactly one value which can be cast into the type specified by dtype. This can also be a toolkit extension function which is compiled as a native shared library using SDK. dtype : {None, int, float, str, list, array.array, dict, turicreate.Image}, optional The data type of the new SArray. If None, the first 100 elements of the array are used to guess the target data type. skip_na : bool, optional If True, will not apply fn to any undefined values. |
---|---|
Returns: | out : SArray The SArray transformed by fn. Each element of the SArray is of type dtype. |
Examples
sa = turicreate.SArray([1,2,3]) sa.apply(lambda x: x*2) dtype: int Rows: 3 [2, 4, 6]
Using native toolkit extension function:
#include <model_server/lib/toolkit_function_macros.hpp> #include
using namespace turi; double logx(const flexible_type& x, double base) { return log((double)(x)) / log(base); }
BEGIN_FUNCTION_REGISTRATION REGISTER_FUNCTION(logx, "x", "base"); END_FUNCTION_REGISTRATION
compiled into example.so
sa = turicreate.SArray([1,2,4]) sa.apply(lambda x: example.logx(x, 2)) dtype: float Rows: 3 [0.0, 1.0, 2.0]