libpysal.weights.w_difference¶
- libpysal.weights.w_difference(w1, w2, w_shape='w1', constrained=True, **kwargs)[source]¶
Returns a binary weights object, w, that includes only neighbor pairs in w1 that are not in w2. The w_shape and constrained parameters determine which pairs in w1 that are not in w2 are returned.
- Parameters:
- w1
W
object
- w2
W
object
- w_shape
str
Defines the shape of the returned weights matrix. ‘w1’ returns a matrix with the same IDs as w1; ‘all’ returns a matrix with all the unique IDs from w1 and w2; and ‘min’ returns a matrix with the IDs occurring in w1 and not in w2.
- constrainedbool
If False then the full set of neighbor pairs in w1 that are not in w2 are returned. If True then those pairs that would not be possible if w_shape=’min’ are dropped. Ignored if w_shape is set to ‘min’.
- **kwargs
keyword
arguments
optional arguments for
pysal.weights.W
- w1
- Returns:
- w
W
object
- w
Notes
ID comparisons are performed using ==, therefore the integer ID 2 is equivalent to the float ID 2.0.
Examples
Construct rook (w2) and queen (w1) weights matrices for two 4x4 regions (16 areas). A queen matrix has all the joins a rook matrix does plus joins between areas that share a corner. The new matrix formed by the difference of rook from queen contains only join at corners (typically called a bishop matrix). Note that the difference of queen from rook would result in a weights matrix with no joins.
>>> from libpysal.weights import lat2W, w_difference >>> w1 = lat2W(4,4,rook=False) >>> w2 = lat2W(4,4,rook=True) >>> w = w_difference(w1, w2, constrained=False) >>> w1[0] == w[0] False >>> w1.neighbors[15] [10, 11, 14] >>> w2.neighbors[15] [11, 14] >>> w.neighbors[15] [10]