Python networkx计算数字分类需要整数?

Python networkx计算数字分类需要整数?,python,networkx,Python,Networkx,我正在尝试使用networkx根据设置为节点的数字属性计算数字分类。我的节点属性是浮动。当我调用分类功能时: assort = nx.numeric_assortativity_coefficient(G,'float_attr') 我犯了以下错误 File "/some dir.../networkx/algorithms/assortativity/correlation.py", line 229, in numeric_assortativity_coefficient a = num

我正在尝试使用networkx根据设置为节点的数字属性计算数字分类。我的节点属性是浮动。当我调用分类功能时:

assort = nx.numeric_assortativity_coefficient(G,'float_attr')
我犯了以下错误

File "/some dir.../networkx/algorithms/assortativity/correlation.py", line 229, in numeric_assortativity_coefficient
a = numeric_mixing_matrix(G,attribute,nodes)
File "/some dir.../networkx/algorithms/assortativity/mixing.py", line 193, in numeric_mixing_matrix
mapping=dict(zip(range(m+1),range(m+1)))
TypeError: range() integer end argument expected, got float.
我检查了networkx分类算法,它没有说数字属性必须是int。有人知道这是否是必需的吗


顺便说一句,我使用了相同的网络和性别属性(设置为0和1)来计算属性和数字分类。我对此没有异议。因此,问题似乎与节点属性的int/float类型有关。

通过使用以下方法将float变量转换为int来解决问题

int(round(float_attr*1000, 0))
提交了一个问题,得到了一个确认的答案,即它只处理离散的int值


性能方面,由于我的网络不是很大(200多个节点),它仍然需要m是一个在范围内不能使用的浮点,您可以尝试转换为int。m是networkx包中的一个变量,而不是我的代码中的一个变量。我不确定m代表什么,我害怕对它进行更改,因为它可能会带来其他问题。啊,好的,是的,查看源代码没有规定类型,m是从
属性\u混合\u dict
返回的dict键的最大值。对我来说好像是个虫子。谢谢!我想最好的方法是将我的float属性变量转换为int。尽管这意味着会丢失一些细粒度的信息。您也可以创建一个快速扭转局面的问题,您也可以接受自己的答案。