ОБЩАЯ ИНФОРМАЦИЯ
При выполнении конструирования объектов, вероятно, потребуется обработать необработанные наборы данных путем создания новых столбцов. Рассмотрим следующий код:
import tensorflow as tf
dataset = tf.data.Dataset.from_tensor_slices(['cat', 'rat', 'bat'])
dataset = dataset.map(lambda x: x+'s')
_ = [print (element) for element in dataset]
, где я просто добавляю букву s
к каждой из строк. Это отлично работает. Однако, если бы я вместо этого хотел получить длину каждой строки, я бы изменил лямбда-функцию, чтобы она возвращала len(x)
. Это, однако, терпит неудачу, несмотря на тот факт, что x
, по-видимому, ясно понимается TF как строка.
ВОПРОС
Как обрабатывать набор данных в векторизуемым образом так же, как можно было бы map()
или apply()
на pandas DataFrames / Series? Т.е. я хотел бы иметь любую произвольную лямбда-функцию (например, len(x)
или 'z' in x
, et c).
Является ли использование map()
лучшей практикой для начала?