In [1]:
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
In [5]:
dframe = DataFrame(np.arange(4 * 4).reshape((4, 4)))
# 0,1,2,3をpermutateしたarrayを取得します。
blender = np.random.permutation(4)

blender
Out[5]:
array([0, 3, 2, 1])
In [6]:
dframe
Out[6]:
0 1 2 3
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
3 12 13 14 15
In [7]:
# blenderをベースにして、行を入れ替えます
dframe.take(blender)
Out[7]:
0 1 2 3
0 0 1 2 3
3 12 13 14 15
2 8 9 10 11
1 4 5 6 7
In [2]:
# データを採りだして逐一戻す場合を考えてみましょう。
In [8]:
# 箱の中に、A,B,C というラベルの付いたビー玉があるとします。
box = np.array(['A','B','C'])
# ランダムにビー玉を取り出す操作を10回やってみましょう。
shaker = np.random.randint(0, len(box), size=10)
In [9]:
shaker
Out[9]:
array([2, 2, 0, 2, 0, 2, 0, 0, 0, 1])
In [11]:
# 実際にはこのように使えます。
hand_grabs = box.take(shaker)
hand_grabs
Out[11]:
array(['C', 'C', 'A', 'C', 'A', 'C', 'A', 'A', 'A', 'B'], 
      dtype='<U1')