2012-03-20 12 views
1

私は配列に対して繰り返し関数を実行しようとしており、それが返すもので構成される行列を作成しようとしています。これは、ネイティブのpythonだった場合、私はどうなることは次のとおりです。numpyで配列に基づいて行列を構築する方法は?

[func(x, y) for y in xrange(Y)] 

が、私はそれを行う場合、私はそれをベクトル化する)(numpy.matrixでそれをラップする必要があります。これを行うnumpyの方法は何ですか?今私は0の行列を初期化して、私はforループから得る要素でそれを設定していますが、それは非効率的です。

+1

「func」とは何ですか?基本的に、配列の操作はすべての要素に適用されます。例えば、 'x'のすべての要素に' 5'を掛けるには、 'y = x * 5'を実行します。 –

答えて

2

numpy tutorialを見て、ユニバーサル機能やufuncsについて特に参加してください。 ufuncは次のとおりです。

要素全体を操作する関数です。あなたが求めているもののように聞こえる

。あなた自身のufuncを書く必要はないかもしれませんが、既存のufuncについてはfuncと書いてください。例:

def hypot(a, b): 
    return np.sqrt(a**2 + b**2) 

>>> a = np.array([3., 5., 10.]) 
>>> b = np.array([4., 12., 24.,]) 
>>> hypot(a, b) 
array([ 5., 13., 26.]) 
関連する問題