2017-12-04 11 views
2

配列x = np.random.normal(size=(300, 300))があり、サイズ(2, 2, 300, 300)の対角行列をxで作成したいとします。私の最初のアプローチは、そうするときしかし、私はサイズ(2, 2)の配列を入手するには混合浮動小数点数と配列から配列を作成する

import numpy as np 

x = np.random.normal(size=(300, 300)) 

array = np.array([ 
    [x, 0.], 
    [0., x] 
]) 

を行うことでした。要素を同じサイズに再キャストするための関数はnumpyですか?リストのすべての配列が同じ形状であり、他のすべての要素がfloatsであると仮定すると、

編集 私は空の配列を定義し、xに対角線を設定することが解決策ではないことを追加される場合があります。ここで編集2

を出力2ように長さを有する、と投稿溶液の最初の二つの次元の場合について

[[[[-1.57346701 -1.00813871 -0.72318135] 
    [ 0.11852539 1.144298 1.38860739] 
    [ 0.64571669 0.47474236 0.294049 ]] 

    [[ 0.   0.   0.  ] 
    [ 0.   0.   0.  ] 
    [ 0.   0.   0.  ]]] 


[[[ 0.   0.   0.  ] 
    [ 0.   0.   0.  ] 
    [ 0.   0.   0.  ]] 

    [[-1.57346701 -1.00813871 -0.72318135] 
    [ 0.11852539 1.144298 1.38860739] 
    [ 0.64571669 0.47474236 0.294049 ]]]] 
+2

'np.random.normal(size =(3、3))'のような最小限のサンプルを使用して、期待される出力を表示しますか? – Divakar

+0

投稿されたソリューションのいずれかがあなたのために機能しましたか? – Divakar

答えて

関連する問題