g
アイテムを返すことを事前に知っているジェネレーターがありn
ます。各項目i
の構造は次のとおりです。
t_i:(e_i, b_i)
t_i
可変サイズのタプルであり、 list の任意の順序付きサブシーケンスを含むことができます(1,...,n)
。たとえばn=6
、t_1=(1, 3, 4)
、t_2=(2, 4, 6)
などです。
e_i
は数値 (float/integer) でありb_i
、boolean (実際にはここでは使用されません) です。
そのようなものn x n
を使用して(numpy配列を使用して)行列を構築する最も効率的な方法は何だろうかg
:
行列の各行i
は、次のように対応します。 1. 位置が表示されるt_i:(e_i, b_i)
(行列内の) 行要素は、2. 他の行要素はデフォルトで.t_i
e_i
0
たとえば、行列の行2
が8 x 8
item に対応する場合t_2:(e_2, b_2) = (2, 4, 6):(13, True)
、この行は として設定する必要があります(0, 13, 0, 13, 0, 13, 0, 0)
。t_2
ここでは(またはt_i
一般的に)の数値にゼロ インデックスを使用していないことに注意してください。
明白な方法は、前もって行列を構築n x n
し、ジェネレーターによって返された各項目を調べ、項目に基づいて各行を順番に設定することです。しかし、Python のパワー、特にそのパワーを考えると、これを行うにはもっと効率的な方法が必要だと思いますnumpy
。