2017-01-03 9 views
-2

私は行列Xとリストcentresを持っています。私は新しいnumpy行列td_Xを作成したいと思います。リストをnumpy行列に変換する

td_Xには、インデックスがセンターに等しいXの行で構成されています。擬似コードの場合:

for each in centers: 
    td_X.append(X[eacj]) 

これを行うにはどうすればよいですか?

+1

何も試しましたか? 'np.array(x)'でも??? –

答えて

2

x = np.array([l[0] for l in x]) 

ここで小さな例です。

x = np.array(alist) 
x = np.squeeze(x) # or 
x = x.reshape(45, 5785) # or 
x = x[:,0,:] 

リスト内で余分なレイヤーを削除することはできますが、このような再構成はアレイでは非常に簡単です。

1

x[0]からは、追加レベルのラップアラウンドがあります。インデックスによってそれを削除すると、そこにあなたを取得する必要があります。その中間の寸法はサイズ1、それを再構築または絞るあるので

x = [[[1,2]], [[2,3]], [[4,5]]] 

np.array(x).shape 
# (3, 1, 2) 

np.array([l[0] for l in x]).shape 
# (3, 2) 

np.array([l[0] for l in x]) 
# array([[1, 2], 
#  [2, 3], 
#  [4, 5]]) 
+0

これは次元の配列を生成します: '(45、1、5785)' – user7347576

+0

結果を 'x'に戻しましたか? – Psidom

+0

異なる変数にはありません。 – user7347576

関連する問題