numpy.random.choice
を使用すると、別の配列からいくつかのランダムな選択肢を含む配列を作成できます。
あなたの場合、data_table
の「x」行が必要です。あなたは、直接テーブルの上にchoice
を使用することはできませんが、あなたはrandom.choice
のためにあなたのテーブルのlen
を使用することができます。
import numpy as np
rows_numbers_to_keep = np.random.choice(len(data_table), 2, replace=False)
そして、インデックス、テーブル:
subsample = data_table[rows_numbers_to_keep]
例えば(私はastropyを使用しています)PyFITS isn't developed anymore and has been migrated to astropy.io.fits
理由:
>>> data
FITS_rec([(1, 4, 7), (2, 5, 8), (3, 6, 9), (4, 7, 0)],
dtype=(numpy.record, [('a', 'S21'), ('b', 'S21'), ('c', 'S21')]))
>>> data[np.random.choice(len(data), 2, replace=False)] # keep 2 distinct rows
FITS_rec([(1, 4, 7), (4, 7, 0)],
dtype=(numpy.record, [('a', 'S21'), ('b', 'S21'), ('c', 'S21')]))
あなたが同じ行を複数回取得できるようにしたい場合は、を使用することができます
'.field(fieldname)'を使う必要はありません。 'data_table [fieldname]'のような添え字構文を使うことができます( 'data_table [x]'として 'x 'はテーブルの行を返す整数です)。また、この珍しいものには特別なことはあまりありません。それはほんの華麗な[numpy.recarray](https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy)です。 recarray.html) – Iguananaut