найти плотность точек вдоль линии, чтобы найти область с максимальной концентрацией

«Slicing» - это то, где вы назначаете объект производного класса экземпляру базового класса, тем самым теряя часть информации - часть его «нарезана».

Например,

class A {
   int foo;
};

class B : public A {
   int bar;
};

Таким образом, объект типа B имеет два элемента данных: foo и bar.

Тогда, если вы должны были написать это:

B b;

A a = b;

Затем информация в b о члене bar теряется в a.

0
задан user1371666 24 March 2019 в 10:56
поделиться

1 ответ

Вы можете использовать matplotlib.pyplot.hist для построения гистограммы, которая покажет вам пик. Вы также можете использовать np.histogram(), который будет возвращать идентичные результаты. Изменить: я использовал np.argmax() здесь сейчас на результаты частоты гистограммы, чтобы найти наше самое большое окно. Также нанесли линию на гистограмму, чтобы показать самую высокую частоту.

Вы также можете проверить numpy.genfromtxt() или pandas.read_csv() для легкого открытия файлов.

import matplotlib.pyplot as plt
import numpy as np
#Synthetic Data
dat=np.random.uniform(0.015,0.13,485)#(count=485) of values in range 0.015 to 0.13

binsize=20 #number of windows you want
hist=plt.hist(dat,bins=binsize) #Plot and get our histogram values
#hist=np.histogram(dat,bins=binsize) #will also work, just not plot the answer.

#hist[0] is frequencies and hist[1] is x value

ans=hist[1][np.argmax(hist[0])]
print('Answer: '+str(ans))

buffer=(hist[1][2]-hist[1][1])/2 #Just to centre the black line
plt.axvline(ans+buffer,c='k') #Draw a line of centre
plt.show()
0
ответ дан Ocean Scientist 24 March 2019 в 10:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: