Documentation updated

This commit is contained in:
fjosw 2021-11-17 17:32:07 +00:00
parent 0b8486d901
commit 65be38e911
2 changed files with 76 additions and 83 deletions

View file

@ -146,7 +146,7 @@
<span class="n">n_obs</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">raveled_data</span><span class="p">)</span>
<span class="n">new_names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="n">y</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">names</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">raveled_data</span><span class="p">]</span> <span class="k">for</span> <span class="n">y</span> <span class="ow">in</span> <span class="n">x</span><span class="p">]))</span>
<span class="n">is_merged</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">o</span><span class="p">:</span> <span class="n">o</span><span class="o">.</span><span class="n">is_merged</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">,</span> <span class="n">raveled_data</span><span class="p">)))</span> <span class="o">&gt;</span> <span class="mi">0</span>
<span class="n">is_merged</span> <span class="o">=</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">o</span><span class="p">:</span> <span class="n">o</span><span class="o">.</span><span class="n">is_merged</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">,</span> <span class="n">raveled_data</span><span class="p">)))</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">}</span>
<span class="n">reweighted</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">o</span><span class="p">:</span> <span class="n">o</span><span class="o">.</span><span class="n">reweighted</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">,</span> <span class="n">raveled_data</span><span class="p">)))</span> <span class="o">&gt;</span> <span class="mi">0</span>
<span class="n">new_idl_d</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">:</span>
@ -156,8 +156,8 @@
<span class="k">if</span> <span class="n">tmp</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">idl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp</span><span class="p">)</span>
<span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">_merge_idx</span><span class="p">(</span><span class="n">idl</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">is_merged</span><span class="p">:</span>
<span class="n">is_merged</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="p">[</span><span class="o">*</span><span class="n">idl</span><span class="p">,</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]]])))</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">is_merged</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
<span class="n">is_merged</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="p">[</span><span class="o">*</span><span class="n">idl</span><span class="p">,</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]]])))</span>
<span class="k">if</span> <span class="n">data</span><span class="o">.</span><span class="n">ndim</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
<span class="n">values</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="n">o</span><span class="o">.</span><span class="n">value</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">data</span><span class="p">])</span>
@ -204,17 +204,19 @@
<span class="n">new_samples</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">new_means</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">new_idl</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">if</span> <span class="n">is_merged</span><span class="p">:</span>
<span class="n">filtered_names</span><span class="p">,</span> <span class="n">filtered_deltas</span><span class="p">,</span> <span class="n">filtered_idl_d</span> <span class="o">=</span> <span class="n">_filter_zeroes</span><span class="p">(</span><span class="n">new_names</span><span class="p">,</span> <span class="n">new_deltas</span><span class="p">,</span> <span class="n">new_idl_d</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">filtered_names</span> <span class="o">=</span> <span class="n">new_names</span>
<span class="n">filtered_deltas</span> <span class="o">=</span> <span class="n">new_deltas</span>
<span class="n">filtered_idl_d</span> <span class="o">=</span> <span class="n">new_idl_d</span>
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">filtered_names</span><span class="p">:</span>
<span class="n">filtered_deltas</span> <span class="o">=</span> <span class="p">{}</span>
<span class="n">filtered_idl_d</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">:</span>
<span class="k">if</span> <span class="n">is_merged</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
<span class="n">filtered_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">filtered_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">_filter_zeroes</span><span class="p">(</span><span class="n">new_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">filtered_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
<span class="n">filtered_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">:</span>
<span class="n">new_samples</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">filtered_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
<span class="n">new_means</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_r_values</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="n">i_val</span><span class="p">])</span>
<span class="n">new_idl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">filtered_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">new_samples</span><span class="p">,</span> <span class="n">filtered_names</span><span class="p">,</span> <span class="n">means</span><span class="o">=</span><span class="n">new_means</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">new_idl</span><span class="p">)</span>
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">new_samples</span><span class="p">,</span> <span class="n">new_names</span><span class="p">,</span> <span class="n">means</span><span class="o">=</span><span class="n">new_means</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">new_idl</span><span class="p">)</span>
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span><span class="o">.</span><span class="n">_value</span> <span class="o">=</span> <span class="n">new_val</span>
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">is_merged</span>
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span><span class="o">.</span><span class="n">reweighted</span> <span class="o">=</span> <span class="n">reweighted</span>
@ -757,7 +759,7 @@
<span class="n">n_obs</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">raveled_data</span><span class="p">)</span>
<span class="n">new_names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="n">y</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">names</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">raveled_data</span><span class="p">]</span> <span class="k">for</span> <span class="n">y</span> <span class="ow">in</span> <span class="n">x</span><span class="p">]))</span>
<span class="n">is_merged</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">o</span><span class="p">:</span> <span class="n">o</span><span class="o">.</span><span class="n">is_merged</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">,</span> <span class="n">raveled_data</span><span class="p">)))</span> <span class="o">&gt;</span> <span class="mi">0</span>
<span class="n">is_merged</span> <span class="o">=</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">o</span><span class="p">:</span> <span class="n">o</span><span class="o">.</span><span class="n">is_merged</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">,</span> <span class="n">raveled_data</span><span class="p">)))</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">}</span>
<span class="n">reweighted</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">o</span><span class="p">:</span> <span class="n">o</span><span class="o">.</span><span class="n">reweighted</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">,</span> <span class="n">raveled_data</span><span class="p">)))</span> <span class="o">&gt;</span> <span class="mi">0</span>
<span class="n">new_idl_d</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">:</span>
@ -767,8 +769,8 @@
<span class="k">if</span> <span class="n">tmp</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">idl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp</span><span class="p">)</span>
<span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">_merge_idx</span><span class="p">(</span><span class="n">idl</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">is_merged</span><span class="p">:</span>
<span class="n">is_merged</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="p">[</span><span class="o">*</span><span class="n">idl</span><span class="p">,</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]]])))</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">is_merged</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
<span class="n">is_merged</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="p">[</span><span class="o">*</span><span class="n">idl</span><span class="p">,</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]]])))</span>
<span class="k">if</span> <span class="n">data</span><span class="o">.</span><span class="n">ndim</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
<span class="n">values</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="n">o</span><span class="o">.</span><span class="n">value</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">data</span><span class="p">])</span>
@ -815,17 +817,19 @@
<span class="n">new_samples</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">new_means</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">new_idl</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">if</span> <span class="n">is_merged</span><span class="p">:</span>
<span class="n">filtered_names</span><span class="p">,</span> <span class="n">filtered_deltas</span><span class="p">,</span> <span class="n">filtered_idl_d</span> <span class="o">=</span> <span class="n">_filter_zeroes</span><span class="p">(</span><span class="n">new_names</span><span class="p">,</span> <span class="n">new_deltas</span><span class="p">,</span> <span class="n">new_idl_d</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">filtered_names</span> <span class="o">=</span> <span class="n">new_names</span>
<span class="n">filtered_deltas</span> <span class="o">=</span> <span class="n">new_deltas</span>
<span class="n">filtered_idl_d</span> <span class="o">=</span> <span class="n">new_idl_d</span>
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">filtered_names</span><span class="p">:</span>
<span class="n">filtered_deltas</span> <span class="o">=</span> <span class="p">{}</span>
<span class="n">filtered_idl_d</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">:</span>
<span class="k">if</span> <span class="n">is_merged</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
<span class="n">filtered_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">filtered_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">_filter_zeroes</span><span class="p">(</span><span class="n">new_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">filtered_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
<span class="n">filtered_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">new_names</span><span class="p">:</span>
<span class="n">new_samples</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">filtered_deltas</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
<span class="n">new_means</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_r_values</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="n">i_val</span><span class="p">])</span>
<span class="n">new_idl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">filtered_idl_d</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">new_samples</span><span class="p">,</span> <span class="n">filtered_names</span><span class="p">,</span> <span class="n">means</span><span class="o">=</span><span class="n">new_means</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">new_idl</span><span class="p">)</span>
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">(</span><span class="n">new_samples</span><span class="p">,</span> <span class="n">new_names</span><span class="p">,</span> <span class="n">means</span><span class="o">=</span><span class="n">new_means</span><span class="p">,</span> <span class="n">idl</span><span class="o">=</span><span class="n">new_idl</span><span class="p">)</span>
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span><span class="o">.</span><span class="n">_value</span> <span class="o">=</span> <span class="n">new_val</span>
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">is_merged</span>
<span class="n">final_result</span><span class="p">[</span><span class="n">i_val</span><span class="p">]</span><span class="o">.</span><span class="n">reweighted</span> <span class="o">=</span> <span class="n">reweighted</span>