У меня проблема с моим длинным сценарием, и я надеюсь получить там ответ. У меня есть двумерная гистограмма, и я хотел бы подгонять ее по гауссовскому. Тем не менее, я хотел бы удалить много данных в моем массиве numpy, потому что есть шум. Этот шум меняет мой гауссовский язык и вызывает ошибку.Гистограмма и гауссовский фитинг
я воспроизвожу мой сценарий с этим небольшим примером, чтобы увидеть проще, где находится проблема:
# -*- coding: utf-8 -*-
#!/usr/bin/env python
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab
import random
list = np.array([0.1,0.258,0.259,1.536,1,0.99,0.24,2.1,0.32,0.8,0.7569,0.963,0.6544,0.785]) # initial array
list_2 = list > 0.3 # New array, for exemple only values which are > 0.3
plt.figure(1)
plt.hist(list)
plt.xlim((min(list), max(list)))
mean = np.mean(list)
variance = np.var(list)
sigma = np.sqrt(variance)
x = np.linspace(min(list), max(list),100)
plt.plot(x,mlab.normpdf(x,mean,sigma))
plt.figure(2)
plt.hist(list_2)
plt.xlim((min(list_2), max(list_2)))
mean2 = np.mean(list_2)
variance2 = np.var(list_2)
sigma2 = np.sqrt(variance2)
x2 = np.linspace(min(list_2), max(list_2),100)
plt.plot(x2,mlab.normpdf(x2,mean2,sigma2))
plt.show()
Но, когда я сюжет его, я получаю этот вид фигур (это не то, что я хочу) :
Так что, я не знаю, почему я потерял много значений, даже больше, чем 0,3. Это та же проблема с моим оригинальным сценарием, диапазон моих значений находится между 0 и 2 с большим количеством шумов между 0 и 0,1, чем я хотел бы удалить, чтобы получить хорошую установку.
Hopfully Я ясно,
Спасибо!
Благодарим вас за ответ! Да, я вводил в заблуждение данные маски и маски. В моем случае это второе решение, которое позволяет получить то, что я хочу, так спасибо :) – Deadpool