Numpy: ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠ² Π½Π° гистограммС ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ с bins = "auto"

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 27 Π°Π²Π³. 2019  Β·  4ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: numpy/numpy

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Number of samples, -20, must be non-negative. ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ гистограмму ΠΌΠΎΠ΅Π³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ….

ВоспроизвСдСниС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΊΠΎΠ΄Π°:

import numpy as np

my_data = np.loadtxt("my_data.csv", delimiter=',', dtype=np.int16)

n_base, bins_base = np.histogram(my_data, bins="auto")

Π’ΠΎΡ‚ my_data.csv

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ± ошибкС:


Число отсчСтов -20 Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ вСрсии Numpy / Python:


1.16.4 3.7.4 (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, 13 августа 2019 Π³., 20:35:49)
[GCC 7.3.0]

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Бпасибо Π·Π° сообщСниС ΠΎΠ± ошибкС. Π― ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ эта ошибка сущСствуСт ΠΈ Π² основной Π²Π΅Ρ‚ΠΊΠ΅.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ NumPy: ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сущСствуСт внутрСнняя функция _hist_bin_sturges Π² histograms.py , которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ptp для вычислСния Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ максимума ΠΈ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° массива с dtype int16 . Π’ этом случаС максимум составляСт 32767, Π° ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ -16, поэтому Ρ€Π°Π·Π½ΠΈΡ†Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ 32783. Но ptp Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°, Ρ‡Ρ‚ΠΎ ΠΈ массив, поэтому ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ -32753, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ расчСт.

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, Π·Π°ΠΌΠ΅Π½ΠΈΠ² x.ptp() Ρ‡Π΅ΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π²Ρ€ΠΎΠ΄Π΅ x.max().item() - x.min().item() .

ВсС 4 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° я ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΡŽ этот Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… Π² float, гистограмма строится Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Бпасибо Π·Π° сообщСниС ΠΎΠ± ошибкС. Π― ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ эта ошибка сущСствуСт ΠΈ Π² основной Π²Π΅Ρ‚ΠΊΠ΅.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ NumPy: ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сущСствуСт внутрСнняя функция _hist_bin_sturges Π² histograms.py , которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ptp для вычислСния Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ максимума ΠΈ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° массива с dtype int16 . Π’ этом случаС максимум составляСт 32767, Π° ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ -16, поэтому Ρ€Π°Π·Π½ΠΈΡ†Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ 32783. Но ptp Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°, Ρ‡Ρ‚ΠΎ ΠΈ массив, поэтому ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ -32753, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ расчСт.

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, Π·Π°ΠΌΠ΅Π½ΠΈΠ² x.ptp() Ρ‡Π΅ΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π²Ρ€ΠΎΠ΄Π΅ x.max().item() - x.min().item() .

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΡ†Π΅Π½Ρ‰ΠΈΠΊΠΎΠ² Π±ΠΈΠ½ΠΎΠ² ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Ρƒ ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с x.ptp() .

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ исправлСниС находится Π½Π° https://github.com/numpy/numpy/pull/14381.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ