Весы libpysal для пространственной автокорреляции с двумерной матрицей, игнорирующей определенные значения - PullRequest
0 голосов
/ 02 марта 2020

У меня есть набор данных значений с плавающей запятой (0,2 - 0,7), указывающих результат эксперимента для сетки 512x512. Я использую LibPySAL.ESDA для запуска теста Морана I, чтобы проверить сетку на пространственную автокорреляцию. Проблема в том, что у меня есть элементы сетки, где я не собирал никаких данных. Эти элементы сетки отмечены в массиве как имеющие значение ноль. Я бы хотел, чтобы эти элементы не были отмечены как соседние с любой другой ячейкой Вот что у меня сейчас есть:

import libpysal
import csv
from libpysal.weights import lat2W
from esda.moran import Moran
import numpy as np

data1=np.array(([0,.222,.244],[0.253,0.299,0.256],[0,0,0])) #example 3x3 array
w = lat2W(3,3, id_type='float',)
mi = Moran(data1,  w)

import seaborn as sbn    #visualize the results of Moran's I 
sbn.kdeplot(mi.sim, shade=True)
plt.vlines(mi.I, 0, 100, color='r')
plt.vlines(mi.EI, 0,100)
plt.xlabel("Moran's I")

Я думаю, что я ищу способ создания объекта Weights, w, из 2d массива, который игнорирует элементы, содержащие нули, так как эти значения не являются «реальный». В моем примере 3x3 у data1 [1,1] должно быть три соседа: data1 [1,0], data1 [1,2], data1 [0,1]. Важно отметить, что data1 [2,1] НЕ является соседом data1 [1,1], поскольку его значение равно нулю.

...