%global _empty_manifest_terminate_build 0 Name: python-multihist Version: 0.6.5 Release: 1 Summary: Convenience wrappers around numpy histograms License: MIT URL: https://github.com/jelleaalbers/multihist Source0: https://mirrors.nju.edu.cn/pypi/web/packages/73/df/bcbe4c72f03c4cb0f550329d6148628fe1f81f7da95d3c2afb867fb437f4/multihist-0.6.5.tar.gz BuildArch: noarch Requires: python3-numpy %description `https://github.com/JelleAalbers/multihist` Thin wrapper around numpy's histogram and histogramdd. Numpy has great histogram functions, which return (histogram, bin_edges) tuples. This package wraps these in a class with methods for adding new data to existing histograms, take averages, projecting, etc. For 1-dimensional histograms you can access cumulative and density information, as well as basic statistics (mean and std). For d-dimensional histograms you can name the axes, and refer to them by their names when projecting / summing / averaging. **NB**: For a faster and richer histogram package, check out `hist `_ from scikit-hep. Alternatively, look at its parent library `boost-histogram `_, which has `numpy-compatible features `_. Multihist was created back in 2015, long before those libraries existed. Synopsis:: # Create histograms just like from numpy... m = Hist1d([0, 3, 1, 6, 2, 9], bins=3) # ...or add data incrementally: m = Hist1d(bins=100, range=(-3, 4)) m.add(np.random.normal(0, 0.5, 10**4)) m.add(np.random.normal(2, 0.2, 10**3)) # Get the data back out: print(m.histogram, m.bin_edges) # Access derived quantities like bin_centers, normalized_histogram, density, cumulative_density, mean, std plt.plot(m.bin_centers, m.normalized_histogram, label="Normalized histogram", drawstyle='steps') plt.plot(m.bin_centers, m.density, label="Empirical PDF", drawstyle='steps') plt.plot(m.bin_centers, m.cumulative_density, label="Empirical CDF", drawstyle='steps') plt.title("Estimated mean %0.2f, estimated std %0.2f" % (m.mean, m.std)) plt.legend(loc='best') plt.show() # Slicing and arithmetic behave just like ordinary ndarrays print("The fourth bin has %d entries" % m[3]) m[1:4] += 4 + 2 * m[-27:-24] print("Now it has %d entries" % m[3]) # Of course I couldn't resist adding a canned plotting function: m.plot() plt.show() # Create and show a 2d histogram. Axis names are optional. m2 = Histdd(bins=100, range=[[-5, 3], [-3, 5]], axis_names=['x', 'y']) m2.add(np.random.normal(1, 1, 10**6), np.random.normal(1, 1, 10**6)) m2.add(np.random.normal(-2, 1, 10**6), np.random.normal(2, 1, 10**6)) m2.plot() plt.show() # x and y projections return Hist1d objects m2.projection('x').plot(label='x projection') m2.projection(1).plot(label='y projection') plt.legend() plt.show() %package -n python3-multihist Summary: Convenience wrappers around numpy histograms Provides: python-multihist BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-multihist `https://github.com/JelleAalbers/multihist` Thin wrapper around numpy's histogram and histogramdd. Numpy has great histogram functions, which return (histogram, bin_edges) tuples. This package wraps these in a class with methods for adding new data to existing histograms, take averages, projecting, etc. For 1-dimensional histograms you can access cumulative and density information, as well as basic statistics (mean and std). For d-dimensional histograms you can name the axes, and refer to them by their names when projecting / summing / averaging. **NB**: For a faster and richer histogram package, check out `hist `_ from scikit-hep. Alternatively, look at its parent library `boost-histogram `_, which has `numpy-compatible features `_. Multihist was created back in 2015, long before those libraries existed. Synopsis:: # Create histograms just like from numpy... m = Hist1d([0, 3, 1, 6, 2, 9], bins=3) # ...or add data incrementally: m = Hist1d(bins=100, range=(-3, 4)) m.add(np.random.normal(0, 0.5, 10**4)) m.add(np.random.normal(2, 0.2, 10**3)) # Get the data back out: print(m.histogram, m.bin_edges) # Access derived quantities like bin_centers, normalized_histogram, density, cumulative_density, mean, std plt.plot(m.bin_centers, m.normalized_histogram, label="Normalized histogram", drawstyle='steps') plt.plot(m.bin_centers, m.density, label="Empirical PDF", drawstyle='steps') plt.plot(m.bin_centers, m.cumulative_density, label="Empirical CDF", drawstyle='steps') plt.title("Estimated mean %0.2f, estimated std %0.2f" % (m.mean, m.std)) plt.legend(loc='best') plt.show() # Slicing and arithmetic behave just like ordinary ndarrays print("The fourth bin has %d entries" % m[3]) m[1:4] += 4 + 2 * m[-27:-24] print("Now it has %d entries" % m[3]) # Of course I couldn't resist adding a canned plotting function: m.plot() plt.show() # Create and show a 2d histogram. Axis names are optional. m2 = Histdd(bins=100, range=[[-5, 3], [-3, 5]], axis_names=['x', 'y']) m2.add(np.random.normal(1, 1, 10**6), np.random.normal(1, 1, 10**6)) m2.add(np.random.normal(-2, 1, 10**6), np.random.normal(2, 1, 10**6)) m2.plot() plt.show() # x and y projections return Hist1d objects m2.projection('x').plot(label='x projection') m2.projection(1).plot(label='y projection') plt.legend() plt.show() %package help Summary: Development documents and examples for multihist Provides: python3-multihist-doc %description help `https://github.com/JelleAalbers/multihist` Thin wrapper around numpy's histogram and histogramdd. Numpy has great histogram functions, which return (histogram, bin_edges) tuples. This package wraps these in a class with methods for adding new data to existing histograms, take averages, projecting, etc. For 1-dimensional histograms you can access cumulative and density information, as well as basic statistics (mean and std). For d-dimensional histograms you can name the axes, and refer to them by their names when projecting / summing / averaging. **NB**: For a faster and richer histogram package, check out `hist `_ from scikit-hep. Alternatively, look at its parent library `boost-histogram `_, which has `numpy-compatible features `_. Multihist was created back in 2015, long before those libraries existed. Synopsis:: # Create histograms just like from numpy... m = Hist1d([0, 3, 1, 6, 2, 9], bins=3) # ...or add data incrementally: m = Hist1d(bins=100, range=(-3, 4)) m.add(np.random.normal(0, 0.5, 10**4)) m.add(np.random.normal(2, 0.2, 10**3)) # Get the data back out: print(m.histogram, m.bin_edges) # Access derived quantities like bin_centers, normalized_histogram, density, cumulative_density, mean, std plt.plot(m.bin_centers, m.normalized_histogram, label="Normalized histogram", drawstyle='steps') plt.plot(m.bin_centers, m.density, label="Empirical PDF", drawstyle='steps') plt.plot(m.bin_centers, m.cumulative_density, label="Empirical CDF", drawstyle='steps') plt.title("Estimated mean %0.2f, estimated std %0.2f" % (m.mean, m.std)) plt.legend(loc='best') plt.show() # Slicing and arithmetic behave just like ordinary ndarrays print("The fourth bin has %d entries" % m[3]) m[1:4] += 4 + 2 * m[-27:-24] print("Now it has %d entries" % m[3]) # Of course I couldn't resist adding a canned plotting function: m.plot() plt.show() # Create and show a 2d histogram. Axis names are optional. m2 = Histdd(bins=100, range=[[-5, 3], [-3, 5]], axis_names=['x', 'y']) m2.add(np.random.normal(1, 1, 10**6), np.random.normal(1, 1, 10**6)) m2.add(np.random.normal(-2, 1, 10**6), np.random.normal(2, 1, 10**6)) m2.plot() plt.show() # x and y projections return Hist1d objects m2.projection('x').plot(label='x projection') m2.projection(1).plot(label='y projection') plt.legend() plt.show() %prep %autosetup -n multihist-0.6.5 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-multihist -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri May 05 2023 Python_Bot - 0.6.5-1 - Package Spec generated