jubakit.loader.array のソースコード

# -*- coding: utf-8 -*-

from __future__ import absolute_import, division, print_function, unicode_literals

from ..base import BaseLoader
from ..compat import *

[ドキュメント]class ArrayLoader(BaseLoader): """ ArrayLoader is a loader to read from 2-d array. Expected to load row-oriented data. For example: >>> ArrayLoader([[1,2,3], [4,5,6]], ['k1','k2','k3']) ... will load two entries: - {'k1': 1, 'k2': 2, 'k3': 3} - {'k1': 4, 'k2': 5, 'k3': 6} """
[ドキュメント] def __init__(self, array, feature_names=None): if feature_names is None: feature_names = ['v{0}'.format(i) for i in range(len(array[0]))] self._array = array self._feature_names = feature_names
[ドキュメント] def rows(self): for ent in self._array: yield dict([x for x in zip(self._feature_names, ent) if x[1] is not None])
[ドキュメント]class ZipArrayLoader(BaseLoader): """ ZipArrayLoader zips multiple 1-d arrays that have the same length. Expected to load column-oriented data. For example: >>> ZipArrayLoader([[1,4], [2,5], [3,6]], ['k1','k2','k3']) ... or simply: >>> ZipArrayLoader(k1=[1,4], k2=[2,5], k3=[3,6]) ... will load two entries: - {'k1': 1, 'k2': 2, 'k3': 3} - {'k1': 4, 'k2': 5, 'k3': 6} """
[ドキュメント] def __init__(self, arrays=[], feature_names=None, **named_arrays): if feature_names is None: feature_names = ['v{0}'.format(i) for i in range(len(arrays))] if len(arrays) != len(feature_names): raise RuntimeError('number of arrays and feature names mismatch') self._feature_names = feature_names self._arrays = list(arrays) for name in named_arrays: self._feature_names.append(name) self._arrays.append(named_arrays[name])
[ドキュメント] def rows(self): for ent in zip(*self._arrays): yield dict([x for x in zip(self._feature_names, ent) if x[1] is not None])