2

したがって、ファイルを読み取り、genfromtxtを使用してndarrayを提供する以下のコードがあります。

arr = np.genfromtxt(filename, delimiter=',', converters={'Date': make_date},
                    names=('Date', 'Name','Age'), dtype=None)

ここで、「マーク」という別の列を arr に追加したいと考えました。どうすればこれができるか教えてください。

4

1 に答える 1

8

np.genfromtxtレコード配列を生成します。通常の numpy の方法では、列をレコード配列に連結することはできません。使用numpy.lib.recfunctions.append_fields:

import numpy as np
from numpy.lib import recfunctions as rfn
from StringIO import StringIO

s = StringIO('2012-12-10,Peter,30\n2010-01-13,Mary,31')
arr = np.genfromtxt(s, delimiter=',', names=('Date', 'Name','Age'), dtype=None)
new_arr = rfn.append_fields(arr, names='Marks', data=['A','C+'], usemask=False)

これは以下を返します:

>>> arr
array([('2012-12-10', 'Peter', 30), ('2010-01-13', 'Mary', 31)], 
  dtype=[('Date', '|S10'), ('Name', '|S5'), ('Age', '<i8')])
>>> new_arr
array([('2012-12-10', 'Peter', 30, 'A'), ('2010-01-13', 'Mary', 31, 'C+')], 
  dtype=[('Date', '|S10'), ('Name', '|S5'), ('Age', '<i8'), ('Marks', '|S2')])
于 2013-02-13T08:47:29.170 に答える