genfromtxtを使用して、ジェネレーターを使用してフィールドをデータ ファイルに追加する簡単な例を次に示します。
サンプルのデータ ファイルはdata.txtで、内容は次のとおりです。
1,11,1.1
2,22,2.2
3,33,3.3
そう
In [19]: np.genfromtxt('data.txt',delimiter=',')
Out[19]:
array([[ 1. , 11. , 1.1],
[ 2. , 22. , 2.2],
[ 3. , 33. , 3.3]])
次のようなジェネレータを作成するとします。
def genfield():
for line in open('data.txt'):
yield '0,' + line
ファイルの各行にカンマで区切られた 0 を前に追加すると、次のようになります。
In [22]: np.genfromtxt(genfield(),delimiter=',')
Out[22]:
array([[ 0. , 1. , 11. , 1.1],
[ 0. , 2. , 22. , 2.2],
[ 0. , 3. , 33. , 3.3]])
次のように、内包表記を使用して同じことを行うことができます。
In [26]: np.genfromtxt(('0,'+line for line in open('data.txt')),delimiter=',')
Out[26]:
array([[ 0. , 1. , 11. , 1.1],
[ 0. , 2. , 22. , 2.2],
[ 0. , 3. , 33. , 3.3]])