export function computeHistogramCat()

in modules/mlvis-common/src/utils/computation.js [264:282]


export function computeHistogramCat(data, bins) {
  // parse the overloaded bins argument
  let categories;

  if (bins === undefined) {
    categories = Array.from(new Set(data));
  } else if (Array.isArray(bins) && bins.length) {
    categories = bins;
  } else {
    throw '`bins` must be an non-empty array';
  }

  const nBins = categories.length;
  const indices = tf.tensor1d(data.map(d => categories.indexOf(d))).toInt();
  const binIds = tf.linspace(0, nBins - 1, nBins).toInt();

  const hist = binCount(indices, binIds);
  return [Array.from(hist.dataSync()), categories];
}