ExtractArrayView ================================ .. js:function:: NeuralNetwork.ExtractArrayView(data, idx_list, idx_start, idx_cnt) ArrayViewから指定されたインデックスのデータを抜き出して返す。 :param ArrayView data: 抽出元 :param int[] idx_list: インデックスの配列 :param int idx_start: 抽出するデータの開始位置 :param int idx_cnt: 抽出するデータの数 ソース ^^^^^^ .. code-block:: js ExtractArrayView(data, idx_list, idx_start, idx_cnt) { // 1個分のデータのサイズ var element_size = data.shape.slice(1).reduce((x, y) => x * y); // 抽出元のArrayViewの各次元の要素数 var shape = data.shape.slice(); // 戻り値のArrayViewの最初の次元の要素数をidx_cntにする。 shape[0] = idx_cnt; // 戻り値のArrayViewを作る。 var X = new ArrayView(shape); // コピー先の位置 var dst = 0; // idx_startの位置からidx_cnt個のデータをコピーする。 for (var idx = idx_start; idx < idx_start + idx_cnt; idx++) { // 抽出元の位置 var src = idx_list[idx] * element_size; // 1個分のデータをコピーする。 for (var i = 0; i < element_size; i++) { X.dt[dst] = data.dt[src]; src++; dst++; } } return X; }