return 使用pysal的权重对象的邻居总数
return the total number of neighbors by using pysal's weights object
我构建了一个权重对象:
import pysal as ps
neighbors = {0: [3, 1], 1: [0, 2, 2], 2: [1, 2], 3: [0, 1, 1]}
weights = {0: [1, 1], 1: [1, 1, 1], 2: [1, 1], 3: [1, 1, 1]}
w = ps.W(neighbors, weights)
pysal
中的权重对象具有如下所示的邻居属性:
w.neighbors
它会 return 一个命令:{0: [3, 1], 1: [0, 2, 2], 2: [1, 2], 3: [0, 1, 1]}
。
我检查了 pysal 的 api 并找到了很多方法和属性 return 关于邻居的数量而不是所有邻居的总数。
对于上面的w
,我希望它return类似于:{0: 2, 1: 3, 2: 2, 3: 3}
。而不是像这样遍历字典:
n_nbrs = dict()
for key, value in w.neighbors.items():
n_nbrs[key] = len(value)
有什么简单的方法可以做到这一点吗?
您可以使用 w.cardinalities
。它将 return 正是您要查找的内容 - {0: 2, 1: 3, 2: 2, 3: 3}
.
PySAL 当前正在更改其结构,因此 weights
模块现在是 libpysal
包的一部分,其 documentation 正在对其进行解释,这与您所指的不同。
我构建了一个权重对象:
import pysal as ps
neighbors = {0: [3, 1], 1: [0, 2, 2], 2: [1, 2], 3: [0, 1, 1]}
weights = {0: [1, 1], 1: [1, 1, 1], 2: [1, 1], 3: [1, 1, 1]}
w = ps.W(neighbors, weights)
pysal
中的权重对象具有如下所示的邻居属性:
w.neighbors
它会 return 一个命令:{0: [3, 1], 1: [0, 2, 2], 2: [1, 2], 3: [0, 1, 1]}
。
我检查了 pysal 的 api 并找到了很多方法和属性 return 关于邻居的数量而不是所有邻居的总数。
对于上面的w
,我希望它return类似于:{0: 2, 1: 3, 2: 2, 3: 3}
。而不是像这样遍历字典:
n_nbrs = dict()
for key, value in w.neighbors.items():
n_nbrs[key] = len(value)
有什么简单的方法可以做到这一点吗?
您可以使用 w.cardinalities
。它将 return 正是您要查找的内容 - {0: 2, 1: 3, 2: 2, 3: 3}
.
PySAL 当前正在更改其结构,因此 weights
模块现在是 libpysal
包的一部分,其 documentation 正在对其进行解释,这与您所指的不同。