cell(row、col)== row + col(またはこれら2つの変数の他の関数:rowとcolumn)のように2D(numpy)配列を定義したい
私は機能的な解決策を探しています。メモリを使用せず、結果の構成を標準の配列操作関数(matrix mult ...)に渡すことができることを願っています。
テンプレートメタプログラミングを使用してC++で実行できること。
cell(row、col)== row + col(またはこれら2つの変数の他の関数:rowとcolumn)のように2D(numpy)配列を定義したい
私は機能的な解決策を探しています。メモリを使用せず、結果の構成を標準の配列操作関数(matrix mult ...)に渡すことができることを願っています。
テンプレートメタプログラミングを使用してC++で実行できること。
を使用し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配列であるかのように動作するが、実際にはメモリ内にない関数を持つ方法はありません。ただし、多少似たケースについては、memmap
numpyクラスを参照してください。 numpy配列としてディスクに保存されているファイルにアクセスします--docshere 。)