2015-08-25 13 views
0

Как новичок в python мне нужна небольшая помощь. У меня есть массив со 100 строками и 100 столбцами. Каждая позиция означает значение температуры. Теперь я хочу рассчитать среднее значение всего массива (у меня есть это до сих пор), а затем создать новый массив с тем же размером, что и первый, и с учетом стандартного отклонения в каждой позиции. В конце я хочу получить массив с отклонением от среднего значения на каждом посту, поэтому я хочу знать, как далеко каждая ценность распространяется от среднего. Надеюсь, вы понимаете, что я имею в виду? Для лучшего понимания: массив представляет собой инфракрасный термографический образ дома. С учетом стандартного отклонения я хочу получить наилучшие реактивные/чувствительные пиксели в изображении. Возможно, раньше кто-то делал что-то подобное. В конце концов, я хочу экспортировать файл, чтобы получить изображение, похожее на инфракрасное изображение. Но не с сырыми температурами, а с стандартными температурами отклонения.Визуализация стандартного отклонения в массиве

Импорт файла и вычисления среднего значения, как это:

data_mean = [] 

my_array = np.genfromtxt((line.replace(',','.') for line in data),skip_header=9,delimiter=";") 

data_mean.append(np.nanmean(my_array)) 

Тогда мне нужно расчета стандартное отклонение каждой позиции в массиве.

Благодарим вас за любую помощь!

ответ

0
data_mean = np.mean(my_array) #gets you the mean of the whole array 

возвращает массив, где каждое значение представляет собой среднее значение данных

meanArray = np.ones(my_array.shape)*data_mean 

variationFromMean = my_array - meanArray 

Это то, что вы искали?

+0

эй, спасибо очень много. на данный момент выглядит спокойным. Если бы теперь вы могли дать мне совет, как я могу построить этот новый массив как новый образ, он будет фантастическим. Я хотел бы построить это в цвете (я думаю, есть много способов выбрать цвета), так что мой новый выход должен выглядеть так же, как и инфракрасное изображение, но в цветах, которые соответствуют новым значениям (так что в конце концов вы может видеть, насколько велика барионация от среднего)? Спасибо. Я не знаю, как это решить. – beginner123

+0

Этот веб-сайт рассказывает о том, как построить изображение в matplotlib: http://matplotlib.org/users/image_tutorial.html. Если вы посмотрите на дно, он также переходит к настройке цветовой карты, чтобы получить горячие цвета. Я думаю, что ответ Тома Пателя ниже может быть более статистически релевантным, потому что он показывает вам и массив количества стандартных отклонений от значений. – Josh

0

Если вы оставляете данные в виде массива здесь решение:

import numpy as np 

#Find the mean of the array data values 
mean_value = np.mean(data_mean) 

#Find the standard deviation of the array data values 
standard_deviation = np.std(data_mean) 

#create an array consisting of the standard deviations from the mean 
array = data_mean/standard_deviation