pysal.lib.weights.w_symmetric_difference

pysal.lib.weights.w_symmetric_difference(w1, w2, w_shape='all', constrained=True, silence_warnings=False)[源代码]

返回二进制权重对象w,该对象只包含w1和w2不共享的邻居对。w_形状和约束参数决定返回哪些不由w1和w2共享的对。

参数:
w1 : W

对象

w2 : W

对象

w_shape : 一串

定义返回的权重矩阵的形状。all'返回具有w1和w2中所有唯一ID的矩阵;“min”返回不由w1和w2共享的ID的矩阵。

constrained : 布尔

如果为false,则返回w1和w2不共享的完整邻居对集。如果是真的,那么如果w岺shape='min'不可能的对将被丢弃。如果w_shape设置为“min”,则忽略。

silence_warnings : 布尔

切换到“关闭(默认打开)”打印带有孤岛的每个观测的语句

返回:
w : W

对象

笔记

使用==执行ID比较,因此整数ID 2等于浮点ID 2.0。

实例

构造4x4(16个区域)区域(w1)的后权矩阵和6x4(24个区域)区域(w2)的Rook矩阵。这两个矩阵的对称差(w_shape设置为“all”,约束设置为“false”)包含重叠区域中的角连接,以及非重叠区域中的所有连接。

>>> from pysal.lib.weights import lat2W
>>> import pysal.lib
>>> w1 = lat2W(4,4,rook=False)
>>> w2 = lat2W(6,4,rook=True)
>>> w = pysal.lib.weights.set_operations.w_symmetric_difference(w1, w2, constrained=False)
>>> w1[0] == w[0]
False
>>> w1.neighbors[15]
[10, 11, 14]
>>> w2.neighbors[15]
[11, 14, 19]
>>> set(w.neighbors[15]) == set([10, 19])
True
>>>