Учитывая образец маскируется массив и запрос на KDTree,KDTree с замаскированными массивами
In [6]: data = np.arange(9).reshape((3,3))*1.0
In [7]: madata = np.ma.array(data)
In [9]: madata[1,1] = ma.masked
In [10]: madata
Out[10]:
masked_array(data =
[[0.0 1.0 2.0]
[3.0 -- 5.0]
[6.0 7.0 8.0]],
mask =
[[False False False]
[False True False]
[False False False]],
fill_value = 1e+20)
In [11]: from scipy.spatial import KDTree
In [12]: matree = KDTree(madata)
In [13]: matree.query([3,0,5])
Out[13]: (4.0, 1)
Является ли это действительным для запроса дерева с использованием не-замаскированный массива? или маска-массив должен использоваться, поскольку дерево построено с использованием маскированных массивов.
Другой вопрос, является ли это разумным подходом найти наиболее похожие пары данных, что-то похожее на поиск наиболее похожих строк еще для числовых значений? Мой исходный набор данных составляет около 50 к на 20, который содержит много отсутствующих значений. Поэтому желательно использовать маскированные массивы и быструю реализацию.
Спасибо.
Спасибо за объяснение. Как насчет наличия NAN в данных? Может ли KDTree правильно обрабатывать эти ситуации? NAN - основная причина, по которой я намерен использовать маскированные массивы. –
см. Мои правки с nans. – hpaulj
Таким образом, нет проблемы с конструированием дерева, но запрос кажется бессмысленным, когда в данных есть NaN. Это главный вопрос. Если я заполню данные другими номерами, разве это не приведет к смещению результата? –