2

cell(row、col)== row + col(またはこれら2つの変数の他の関数:rowとcolumn)のように2D(numpy)配列を定義したい

私は機能的な解決策を探しています。メモリを使用せず、結果の構成を標準の配列操作関数(matrix mult ...)に渡すことができることを願っています。

テンプレートメタプログラミングを使用してC++で実行できること。

4

1 に答える 1

4

を使用しnumpy.fromfunction(function, shape)ます。ドキュメントから:

各座標に対して関数を実行して配列を作成します。

したがって、結果の配列は、座標(x、y、z)に値fn(x、y、z)を持ちます。

だから、あなたの場合:

>>> import numpy as np
>>> arr = np.fromfunction(lambda i,j: i+j, (6,6))
>>> print arr
[[  0.   1.   2.   3.   4.   5.]
 [  1.   2.   3.   4.   5.   6.]
 [  2.   3.   4.   5.   6.   7.]
 [  3.   4.   5.   6.   7.   8.]
 [  4.   5.   6.   7.   8.   9.]
 [  5.   6.   7.   8.   9.  10.]]

(もちろん、これはメモリを使用します-それがnumpy配列であるかのように動作するが、実際にはメモリ内にない関数を持つ方法はありません。ただし、多少似たケースについては、memmapnumpyクラスを参照してください。 numpy配列としてディスクに保存されているファイルにアクセスします--docshere

于 2012-10-14T14:14:14.827 に答える