2013-04-26 30 views
12

私は乱数を持つ単純な1次元Python配列を持っています。私がしたいことは、それを特定の形状の低次元のマトリックスに変換することです。私の現在の試みは、次のようになります。1D配列をnumpy行列に変換する

randomWeights = [] 
for i in range(80): 
    randomWeights.append(random.uniform(-1, 1)) 
W = np.mat(randomWeights) 
W.reshape(8,10) 

残念ながら、それは常にフォームのマトリックスを作成します。

[[random1、random2、random3、...]]

だから、最初の要素だけ1つの次元が使用され、再フォーマットコマンドは効果がありません。最初のx項目が行列の行1になるように1D配列を行列に変換する方法はありますか?次のx項目は2行などになりますか?

基本的に、これは意図した形状のようになります。私は常に入力配列を介して解析することにより、手動で所望の形で新しいマトリックスを構築することができると仮定

[[1, 2, 3, 4, 5, 6, 7, 8], 
[9, 10, 11, ... , 16], 
[...,    800]] 

。しかし、私が見ていない内蔵機能を備えたより単純で、より多くのeleganzソリューションがあるかどうかを知りたいと思います。これらの行列を手作業で構築しなければならない場合、私のソースデータはすべて単純な1D配列になりますが、行列として計算されるため、コードの他の領域では余分な作業が必要になります。

答えて

18

reshape()が所定の位置に再構築しない、あなたは結果を代入する必要があります。

>>> W = W.reshape(8,10) 
>>> W.shape 
(8,10)  
関連する問題