3

小数点記号がコンマであるデータ数値ファイルがいくつかあります。そこで、ラムダ関数を使用して変換を行います。

import numpy as np
def decimal_converter(num_cols):
    conv = dict((col, lambda valstr: \
    float(valstr.decode('utf-8').replace(',', '.'))) for col in range(nb_cols))
    return conv

data = np.genfromtxt("file.csv", converters = decimal_converter(3))

ファイル内のデータは次のようになります。

0; 0,28321815;  0,5819178
1; 0,56868281;  0,85621369
2; 0,24022026;  0,53490058
3; 0,63641921;  0,0293904
4; 0,65585546;  0,55913776

ここで私の関数でdecimal_converterは、ファイルに含まれる列の数を指定する必要があります。通常、ファイル内の列数を指定する必要はなくnumpy.genfromtxt、見つかったすべての列が使用されます。コンバーターオプションを使用する場合でも、この機能を維持したいと思います。

4

2 に答える 2