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_ie_i0
たとえば、行列の行2が8 x 8item に対応する場合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。