2016-03-31 2 views
1

Как удалить данные из гистограммы в python при определенном частоте?Гистограмма манипуляции для удаления нежелательных данных

Скажем, у меня есть 10 ящиков, первый бит имеет счет 4, второй имеет 2, третий имеет 1, четвертый имеет 5 и т. Д. Теперь я хочу избавиться от данных, которые имеют кол-во 2 или менее. Таким образом, второй бит будет равен нулю, как и третий.

Пример:

import numpy as np 
import matplotlib.pyplot as plt 

gaussian_numbers = np.random.randn(1000) 
plt.hist(gaussian_numbers, bins=12) 
plt.title("Gaussian Histogram") 
plt.xlabel("Value") 
plt.ylabel("Frequency") 

fig = plt.gcf() 

Дает:

enter image description here

, и я хочу, чтобы избавиться от мусорных ведер с меньшим, чем частотой сказать 'X' (может быть частота = 100 для пример).

хотите:

enter image description here

спасибо.

+3

Вы даете слишком мало информации. что ты уже испробовал? –

+0

Можете ли вы разместить любой код? – linusg

+0

Вы не используете свой импорт в примере, однако вы используете np и plt, которые, как я полагаю, имеют numpy и matplotlib.pyplot. –

ответ

2

Une np.histogram для создания гистограммы.

Затем используйте np.where. Учитывая условие, он дает массив логических элементов, которые вы можете использовать для индексации вашей гистограммы.

import numpy as np 
import matplotlib.pyplot as plt 

gaussian_numbers = np.random.randn(1000) 

# Get histogram 
hist, bins = np.histogram(gaussian_numbers, bins=12) 

# Threshold frequency 
freq = 100 

# Zero out low values 
hist[np.where(hist <= freq)] = 0 

# Plot 
width = 0.7 * (bins[1] - bins[0]) 
center = (bins[:-1] + bins[1:])/2 
plt.bar(center, hist, align='center', width=width) 
plt.title("Gaussian Histogram") 
plt.xlabel("Value") 
plt.ylabel("Frequency") 

(Plot часть вдохновлен here.)

+0

нет Я хочу избавиться от значений, если частота подсчета на этом бункере низкая – Scientized

+0

Вы имеете в виду установить значение 0 или полностью удалить значение? Что бы вы ожидали в моем примере, например? –

+0

Да избавиться от них полностью :) Есть причина для безумия – Scientized