.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "intro/scipy/summary-exercises/auto_examples/plot_gumbell_wind_speed_prediction.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end <sphx_glr_download_intro_scipy_summary-exercises_auto_examples_plot_gumbell_wind_speed_prediction.py>` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_intro_scipy_summary-exercises_auto_examples_plot_gumbell_wind_speed_prediction.py: The Gumbell distribution ========================= Generate the exercise results on the Gumbell distribution .. GENERATED FROM PYTHON SOURCE LINES 7-40 .. image-sg:: /intro/scipy/summary-exercises/auto_examples/images/sphx_glr_plot_gumbell_wind_speed_prediction_001.png :alt: plot gumbell wind speed prediction :srcset: /intro/scipy/summary-exercises/auto_examples/images/sphx_glr_plot_gumbell_wind_speed_prediction_001.png :class: sphx-glr-single-img .. code-block:: Python import numpy as np import scipy as sp import matplotlib.pyplot as plt def gumbell_dist(arr): return -np.log(-np.log(arr)) years_nb = 21 wspeeds = np.load("sprog-windspeeds.npy") max_speeds = np.array([arr.max() for arr in np.array_split(wspeeds, years_nb)]) sorted_max_speeds = np.sort(max_speeds) cprob = (np.arange(years_nb, dtype=np.float32) + 1) / (years_nb + 1) gprob = gumbell_dist(cprob) speed_spline = sp.interpolate.UnivariateSpline(gprob, sorted_max_speeds, k=1) nprob = gumbell_dist(np.linspace(1e-3, 1 - 1e-3, 100)) fitted_max_speeds = speed_spline(nprob) fifty_prob = gumbell_dist(49.0 / 50.0) fifty_wind = speed_spline(fifty_prob) plt.figure() plt.plot(sorted_max_speeds, gprob, "o") plt.plot(fitted_max_speeds, nprob, "g--") plt.plot([fifty_wind], [fifty_prob], "o", ms=8.0, mfc="y", mec="y") plt.plot([fifty_wind, fifty_wind], [plt.axis()[2], fifty_prob], "k--") plt.text(35, -1, rf"$V_{{50}} = {fifty_wind:.2f} \, m/s$") plt.xlabel("Annual wind speed maxima [$m/s$]") plt.ylabel("Gumbell cumulative probability") plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.065 seconds) .. _sphx_glr_download_intro_scipy_summary-exercises_auto_examples_plot_gumbell_wind_speed_prediction.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_gumbell_wind_speed_prediction.ipynb <plot_gumbell_wind_speed_prediction.ipynb>` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_gumbell_wind_speed_prediction.py <plot_gumbell_wind_speed_prediction.py>` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_gumbell_wind_speed_prediction.zip <plot_gumbell_wind_speed_prediction.zip>` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_