2017-02-05 5 views
2

私はリストの列を持つpandasデータフレームを持っています。Pandas/Numpy配列の列から行列を取得

DF:

inputs 
0 [1, 2, 3] 
1 [4, 5, 6] 
2 [7, 8, 9] 
3 [10, 11, 12] 

私は行列

array([[ 1, 2, 3], 
     [ 4, 5, 6], 
     [ 7, 8, 9], 
     [10, 11, 12]]) 

にこれを行うための効率的な方法がありますか?

注:私はdf.inputs.as_matrix()をしようとすると、出力が望まれるよう(4,)、ない(4,3)を形作るあり

array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]], dtype=object) 

です。

答えて

2

あなたは列内のすべてのリストは、同じ長さを持っている場合、これは2次元配列になります、リストアップして、numpyの配列を適用するために列を変換することができます:

arr = np.array(df.inputs.tolist()) 

#array([[ 1, 2, 3], 
#  [ 4, 5, 6], 
#  [ 7, 8, 9], 
#  [10, 11, 12]]) 

arr.shape 
# (4, 3) 

それとも別のオプションを使用します)(

%timeit df.inputs.values.tolist() 
# 100000 loops, best of 3: 5.52 µs per loop 

%timeit df.inputs.tolist() 
# 100000 loops, best of 3: 11.5 µs per loop 
+1

df.inputs.values.tolist:.valuesが最初numpyのオブジェクトにアクセスした後@piRSquaredによってコメントとしてリストに変換するために、このことは、与えられた例でわずかに速くなります – piRSquared

関連する問題