oniwan111’s blog

学生が少しでも社会の役に立てればいいなと思って始めたブログです

xtensorでcsvファイル読み込み

学生です、バイトしたいです

C++ でデータ分析の勉強中です 今日はxtensorでcsvファイルを読み込む方法を一応メモ

#include <iostream>
#include<string>
#include<fstream>
#include "xtensor/xarray.hpp"
#include "xtensor/xio.hpp"
#include "xtensor/xview.hpp"
#include "xtensor/xcsv.hpp"


std::ifstream ifs("datasets/mysample.csv");
xt::xcsv_tensor<double> arr = xt::load_csv<double>(ifs);
std::cout << arr;
{{      0.,    8306.,  418971.},
 {      1.,    6502.,  398123.},
 {      2.,    9984.,  314188.},
 {      3.,    3661.,  294206.},
 {      4.,    8604.,  227276.},
 {      5.,    8308.,  216597.},
 {      6.,    4597.,  213376.},
 {      7.,    7974.,  211277.},
 {      8.,    4188.,  205661.},
 {      9.,    5020.,  204065.},
 {     10.,    7203.,  195476.},
 {     11.,    3436.,  193099.},
 {     12.,    3793.,  192359.},
 {     13.,    8411.,  190834.},
 {     14.,    6758.,  188650.},
 {     15.,    6301.,  186052.},
 {     16.,    8750.,  173517.},
 {     17.,    4755.,  159607.},
 {     18.,    7270.,  157577.},
 {     19.,    8058.,  156567.},
 {     20.,    8316.,  155541.},
 {     21.,    3656.,  148888.},
 {     22.,    7940.,  147352.},
 {     23.,    3402.,  146399.},
 {     24.,    4503.,  146365.},
 {     25.,    2914.,  146003.},
 {     26.,    7267.,  141316.},
 {     27.,    6752.,  140374.},
 {     28.,    7261.,  139152.},
 {     29.,    7186.,  138668.},
 {     30.,    3825.,  137742.},
 {     31.,    3810.,  137667.},
 {     32.,    1570.,  136399.},
 {     33.,    8802.,  136213.},
 {     34.,    6503.,  136019.},
 {     35.,    5401.,  135692.},
 {     36.,    5411.,  132910.},
 {     37.,    9432.,  131192.},
 {     38.,    8002.,  130224.},
 {     39.,    8801.,  128881.},
 {     40.,    3667.,  124909.},
 {     41.,    2432.,  122169.},
 {     42.,    8001.,  122088.},
 {     43.,    7201.,  120819.},
 {     44.,    6326.,  119779.},
 {     45.,    6501.,  119476.},
 {     46.,    9437.,  117868.},
 {     47.,    1605.,  117667.},
 {     48.,    7269.,  115749.},
 {     49.,    8031.,  114572.},
 {     50.,    4528.,  114312.},
 {     51.,    6702.,  114261.},
 {     52.,    2503.,  111533.},
 {     53.,    8591.,  111404.},
 {     54.,    7202.,  110461.},
 {     55.,    4452.,  109186.},
 {     56.,    8795.,  107823.},
 {     57.,    3092.,  106870.},
 {     58.,    7751.,  106361.},
 {     59.,    8035.,  102908.},
 {     60.,    3853.,  102540.},
 {     61.,    6479.,  100873.},
 {     62.,    8309.,   97120.},
 {     63.,    8766.,   97103.},
 {     64.,    2802.,   96490.},
 {     65.,    6857.,   96436.},
 {     66.,    9433.,   95839.},
 {     67.,    5802.,   94884.},
 {     68.,    8725.,   94555.},
 {     69.,    4502.,   93994.},
 {     70.,    8630.,   93890.},
 {     71.,    9064.,   93290.},
 {     72.,    9201.,   93022.},
 {     73.,    4004.,   92159.},
 {     74.,    9503.,   91625.},
 {     75.,    6471.,   91009.},
 {     76.,    8732.,   90398.},
 {     77.,    4579.,   89816.},
 {     78.,    4063.,   89395.},
 {     79.,    7717.,   89215.},
 {     80.,    3672.,   87644.},
 {     81.,    4288.,   87455.},
 {     82.,    8053.,   86120.},
 {     83.,    1357.,   85734.},
 {     84.,    8113.,   84550.},
 {     85.,    7211.,   83858.},
 {     86.,    4568.,   83360.},
 {     87.,    5108.,   82943.},
 {     88.,    2351.,   82526.},
 {     89.,    7011.,   81585.},
 {     90.,    6723.,   81403.},
 {     91.,    1928.,   81236.},
 {     92.,    7272.,   79201.},
 {     93.,    3382.,   78057.},
 {     94.,    6976.,   77774.},
 {     95.,    9024.,   77145.},
 {     96.,    4911.,   76910.},
 {     97.,    3401.,   75623.},
 {     98.,    4507.,   75543.},
 {     99.,    6971.,   75266.},
 {    100.,    2181.,   75221.},
 {    101.,    5406.,   74887.},
 {    102.,    4578.,   74312.},
 {    103.,    1925.,   73744.},
 {    104.,    6902.,   73557.},
 {    105.,    4927.,   72828.},
 {    106.,    9702.,   72699.},
 {    107.,    2502.,   71234.},
 {    108.,    7575.,   71160.},
 {    109.,    3758.,   70947.},
 {    110.,    5334.,   70655.},
 {    111.,    1963.,   70627.},
 {    112.,    2371.,   70454.},
 {    113.,    3099.,   70345.},
 {    114.,    6988.,   68846.},
 {    115.,    5938.,   68775.},
 {    116.,    3807.,   68246.},
 {    117.,    3231.,   66996.},
 {    118.,    6770.,   66788.},
 {    119.,    9502.,   66381.},
 {    120.,    4661.,   66170.},
 {    121.,    6141.,   66117.},
 {    122.,    6506.,   65454.},
 {    123.,    6724.,   65378.},
 {    124.,    5105.,   64293.},
 {    125.,    7752.,   64108.},
 {    126.,    8086.,   63896.},
 {    127.,    3659.,   63832.},
 {    128.,    4689.,   63326.},
 {    129.,    5817.,   63184.},
 {    130.,    6952.,   63045.},
 {    131.,    6460.,   62679.},
 {    132.,    3632.,   62673.},
 {    133.,    6981.,   62513.},
 {    134.,    7741.,   62196.},
 {    135.,    9202.,   62099.},
 {    136.,    3782.,   62093.},
 {    137.,    6098.,   61109.},
 {    138.,    4508.,   60812.},
 {    139.,    8601.,   60744.},
 {    140.,    4536.,   60715.},
 {    141.,    9142.,   60609.},
 {    142.,    4182.,   60399.},
 {    143.,    6954.,   60326.},
 {    144.,    8729.,   60277.},
 {    145.,    4901.,   60178.},
 {    146.,    3405.,   60171.},
 {    147.,    1808.,   59736.},
 {    148.,    8252.,   59305.},
 {    149.,    9531.,   59279.},
 {    150.,    7731.,   59051.},
 {    151.,    6753.,   59012.},
 {    152.,    9962.,   58430.},
 {    153.,    6448.,   58362.},
 {    154.,    6481.,   57342.},
 {    155.,    4321.,   57112.},
 {    156.,    4202.,   56506.},
 {    157.,    4523.,   56416.},
 {    158.,    4062.,   56340.},
 {    159.,    9532.,   56244.},
 {    160.,    6594.,   56104.},
 {    161.,    6315.,   56091.},
 {    162.,    3981.,   55942.},
 {    163.,    2413.,   55272.},
 {    164.,    3668.,   55228.},
 {    165.,    5333.,   55166.},
 {    166.,    5110.,   55091.},
 {    167.,    3639.,   54906.},
 {    168.,    6367.,   54439.},
 {    169.,    6305.,   54376.},
 {    170.,    9508.,   53851.},
 {    171.,    9513.,   53705.},
 {    172.,    8267.,   53591.},
 {    173.,    2379.,   53533.},
 {    174.,    6619.,   53422.},
 {    175.,    3903.,   53348.},
 {    176.,    7205.,   52743.},
 {    177.,    3932.,   52461.},
 {    178.,    7707.,   52243.},
 {    179.,    6875.,   52226.},
 {    180.,    9501.,   52214.},
 {    181.,    6841.,   52177.},
 {    182.,    4912.,   52117.},
 {    183.,    4151.,   51715.},
 {    184.,    9021.,   51465.},
 {    185.,    3197.,   51262.},
 {    186.,    1802.,   50640.},
 {    187.,    6804.,   50065.},
 {    188.,    4902.,   49891.},
 {    189.,    4185.,   49887.},
 {    190.,    9603.,   49797.},
 {    191.,    6787.,   49147.},
 {    192.,    6473.,   49133.},
 {    193.,    2871.,   48941.},
 {    194.,    4355.,   48913.},
 {    195.,    4204.,   48870.},
 {    196.,    9697.,   48697.},
 {    197.,    8697.,   48305.},
 {    198.,    9449.,   47960.},
 {    199.,    9735.,   47597.}}

ソースコードを読んでくれば数分で終わる話ですが、僕はテンプレートを使い慣れていなくてハマってしまったのでメモ