2016-11-20 20 views
1

numpyで配列への要素のベクトル化された割り当てがありますかlike in this discussion?例えばnumpyベクトル化された配列の割り当て

:代わりに、ループの

xx = np.array([1,2], dtype=object) 
expanded = np.arange(xx, xx+2) 

xx = np.array([1,2], dtype=object) 
expanded = np.array([np.arange(x, x+2) for x in xx]).flatten() 

これを決定マトリックスに隣接セルにスカラーヒューリスティックをマッピングするためであろう(例えば範囲correlation()操作からピークオーバーラップを有する細胞の)。

+1

同じことですが、flattenはありません:http://stackoverflow.com/questions/40624409/creating-nd-arrays-with-different-rows;サブレンジの長さがすべて同じであれば問題はかなり簡単です。 – hpaulj

答えて

1

このようにします。

>>> xx = np.array([3,8,19]) 
>>> (xx[:,None]+np.arange(2)[None,:]).flatten() 
array([ 3, 4, 8, 9, 19, 20]) 

xx[:,None]動作はNX1マトリックスに長さnのベクトルを回転し、np.arange(2)[None,:])動作[0., 1.]を含む長さ1×2行列を作成します。 array broadcastingを使用して一緒に追加され、nx2の行列が得られ、その後、長さ2nのベクトルに平坦化されます。

関連する問題