2015-03-08 2 views
0

У меня есть массив, который содержит данные, в том числе следующие:Пустые клетки и Null Valuess

1984 NR 
1983 NR 
1982 6 
1981 0 
1980 20 
1979 9 
1978 10 

Набор данных гораздо больше, и содержит достаточное количество информации, которая может быть проанализирован как регресс или иной форме. Как написать код, который принимает NR (что означает «Без чтения») и делает значение пустым? До этого момента я просто ушел из данных, и я написал код следующим образом:

from numpy import loadtxt, empty 
from pylab import scatter, xlabel, ylabel, xlim, ylim, show, plot 
from scipy import stats 

data = loadtxt("Durham_1.txt") 
x = data[ : ,0] 
y = data[ : ,1] 

slope, intercept, r_value, p_value, std_err = stats.linregress(x,y) 
print slope 
print intercept 

Проблема заключается в том, что у меня есть очень большой набор данных, и я хотел бы быть способный запускать программу при присвоении значений NR как некоторого типа нулевого значения.

ответ

0

Что вы хотите - это система для анализа данных, которая содержит как числовые, так и нечисловые объекты. Существует несколько возможных способов приблизиться к этой ситуации, и алгоритм, который вы в конечном счете используете, должен иметь метод для различения числовых и нечисловых данных.

Один из способов - выбрать значение флага. Значение флага - это числовое значение, которое недопустимо для диапазона действительных числовых значений в вашем наборе данных. Например, если ваш набор данных содержит только положительные числа, тогда вы можете выбрать значение флага -1.0 для указания «нет результата».

Другой способ - использовать ссылочный тип, чтобы содержать ваши числовые данные, такие как Double. Вы можете установить для этой переменной значение null, чтобы указать нечисловую величину. Есть недостатки такого подхода:

  • Вы можете иметь только одно значение флага (null)
  • Объект должен быть выделен для каждого наблюдения в наборе данных

Третий способ заключается в создайте класс для представления наблюдений в вашем наборе данных. Одно поле будет содержать числовое значение, а другое поле указывает на «статус» наблюдения. Например, вы можете использовать поле статуса для отметки «Нет результата» или «Недействительные данные» или любое из нескольких возможных значений.

Этот последний вариант имеет то преимущество, что работает для наблюдений, для которых нет практического значения «флага» в диапазоне возможных значений (поскольку статус хранится отдельно). Он разделяет недостаток, требующий размещения объекта для каждого наблюдения.

Смежные вопросы