.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_data_analysis/manage_data_and_samples/plot_sort_sample.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_data_analysis_manage_data_and_samples_plot_sort_sample.py: Sort a sample ============= .. GENERATED FROM PYTHON SOURCE LINES 6-7 In this example we present useful methods of the `Sample` object such as marginals extraction and various sorting strategies. .. GENERATED FROM PYTHON SOURCE LINES 10-15 .. code-block:: default import openturns as ot ot.Log.Show(ot.Log.NONE) ot.RandomGenerator.SetSeed(0) .. GENERATED FROM PYTHON SOURCE LINES 16-17 We start by defining the distribution of a regular non-biased die. .. GENERATED FROM PYTHON SOURCE LINES 17-19 .. code-block:: default die_distribution = ot.UserDefined([[i] for i in range(1, 7)]) .. GENERATED FROM PYTHON SOURCE LINES 20-21 We consider now an experiment with two independent dice and build the corresponding random vector : .. GENERATED FROM PYTHON SOURCE LINES 21-23 .. code-block:: default two_dice_distribution = ot.ComposedDistribution([die_distribution]*2) .. GENERATED FROM PYTHON SOURCE LINES 24-25 We now build a sample of size :math:`n=5` from this distribution : .. GENERATED FROM PYTHON SOURCE LINES 25-29 .. code-block:: default n = 5 sample = two_dice_distribution.getSample(n) print(sample) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none [ X0 X1 ] 0 : [ 1 3 ] 1 : [ 3 2 ] 2 : [ 4 3 ] 3 : [ 4 4 ] 4 : [ 5 5 ] .. GENERATED FROM PYTHON SOURCE LINES 30-32 Useful methods -------------- .. GENERATED FROM PYTHON SOURCE LINES 34-35 We have access to the marginals by providing a list of the wanted indices : .. GENERATED FROM PYTHON SOURCE LINES 35-42 .. code-block:: default # the first marginal sample_die1 = sample.getMarginal([0]) # the second marginal sample_die2 = sample.getMarginal([1]) .. GENERATED FROM PYTHON SOURCE LINES 43-45 Suppose we are interested in the sum of the two dice. This can be done by summing the two samples `die1` and `die2`. Provided the dimensions are the same we can add samples with the `+` operator and produce a new sample : .. GENERATED FROM PYTHON SOURCE LINES 45-47 .. code-block:: default experiment = sample_die1 + sample_die2 .. GENERATED FROM PYTHON SOURCE LINES 48-49 Note that the `+=` operator is defined as well. .. GENERATED FROM PYTHON SOURCE LINES 51-52 We can concatenate two samples having the same size with the `stack` method : .. GENERATED FROM PYTHON SOURCE LINES 52-55 .. code-block:: default sample_die1.stack(sample_die2) print(sample_die1) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none [ X0 X1 ] 0 : [ 1 3 ] 1 : [ 3 2 ] 2 : [ 4 3 ] 3 : [ 4 4 ] 4 : [ 5 5 ] .. GENERATED FROM PYTHON SOURCE LINES 56-57 We can split a sample in two by giving an index (here 2). .. GENERATED FROM PYTHON SOURCE LINES 57-62 .. code-block:: default remaining = sample_die1.split(2) print(sample_die1) print(remaining) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none [ X0 X1 ] 0 : [ 1 3 ] 1 : [ 3 2 ] [ X0 X1 ] 0 : [ 4 3 ] 1 : [ 4 4 ] 2 : [ 5 5 ] .. GENERATED FROM PYTHON SOURCE LINES 63-65 Sorting samples --------------- .. GENERATED FROM PYTHON SOURCE LINES 68-69 We can extract any marginal and sort it by ascending order by specifying the index : .. GENERATED FROM PYTHON SOURCE LINES 69-72 .. code-block:: default sorted_marginal = sample.sort(1) print(sorted_marginal) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none 0 : [ 2 ] 1 : [ 3 ] 2 : [ 3 ] 3 : [ 4 ] 4 : [ 5 ] .. GENERATED FROM PYTHON SOURCE LINES 73-74 We can sort the sample in place, that is whithout creating a new sample, as well with sortInPlace. When the dimension is greater than one the sort is made according to the first marginal. .. GENERATED FROM PYTHON SOURCE LINES 74-77 .. code-block:: default sample.sortInPlace() print(sample) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none [ X0 X1 ] 0 : [ 1 3 ] 1 : [ 3 2 ] 2 : [ 4 3 ] 3 : [ 4 4 ] 4 : [ 5 5 ] .. GENERATED FROM PYTHON SOURCE LINES 78-79 We can sort the rows according to the second marginal with the `sortAccordingToAComponent` : .. GENERATED FROM PYTHON SOURCE LINES 79-82 .. code-block:: default another_sample = sample.sortAccordingToAComponent(1) print(another_sample) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none [ X0 X1 ] 0 : [ 3 2 ] 1 : [ 1 3 ] 2 : [ 4 3 ] 3 : [ 4 4 ] 4 : [ 5 5 ] .. GENERATED FROM PYTHON SOURCE LINES 83-84 There is also a `sortAccordingToAComponentInPlace` method that does the same without creating a new sample. .. GENERATED FROM PYTHON SOURCE LINES 86-87 We can sort and remove the duplicates at the same time .. GENERATED FROM PYTHON SOURCE LINES 87-90 .. code-block:: default print(sample_die2) print(sample_die2.sortUnique()) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none [ X1 ] 0 : [ 3 ] 1 : [ 2 ] 2 : [ 3 ] 3 : [ 4 ] 4 : [ 5 ] [ X1 ] 0 : [ 2 ] 1 : [ 3 ] 2 : [ 4 ] 3 : [ 5 ] .. GENERATED FROM PYTHON SOURCE LINES 91-92 We note that the sample is smaller as expected. Sorting in place is also possible : .. GENERATED FROM PYTHON SOURCE LINES 92-95 .. code-block:: default sample_die2.sortUniqueInPlace() print(sample_die2) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none [ X1 ] 0 : [ 2 ] 1 : [ 3 ] 2 : [ 4 ] 3 : [ 5 ] .. GENERATED FROM PYTHON SOURCE LINES 96-97 Let's try with the sample in dimension 2 : .. GENERATED FROM PYTHON SOURCE LINES 97-100 .. code-block:: default sampleUnique = sample.sortUnique() print(sampleUnique) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none [ X0 X1 ] 0 : [ 1 3 ] 1 : [ 3 2 ] 2 : [ 4 3 ] 3 : [ 4 4 ] 4 : [ 5 5 ] .. GENERATED FROM PYTHON SOURCE LINES 101-102 Nothing happens here because pairs are already unique ! .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 0.005 seconds) .. _sphx_glr_download_auto_data_analysis_manage_data_and_samples_plot_sort_sample.py: .. only :: html .. container:: sphx-glr-footer :class: sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_sort_sample.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_sort_sample.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_