import networkx as nx
import numpy as np
import random
from networkx.utils import powerlaw_sequence
W=powerlaw_sequence(100,exponent=2.5)
random.choice(W)
如果我希望这个序列的数字是零以外的任何数字怎么办?或特定范围内的任何数字?因此,最小值为1,例如..甚至在从序列中选择随机数时指定此条件。
powerlaw_sequence(100,exponent = 2.0,range(1,20))和powerlaw_sequence(100,exponent = 2.0,xmin = 1)都不起作用。谢谢
答案 0 :(得分:3)
我不知道numpy,所以也许有另一种可能的解决方案,但以下应该有效:
W = [x for x in powerlaw_sequence(100,exponent=2.5) if x != 0]
但是,这会将W
的长度减少因条件x != 0
而滤除的元素数量。
答案 1 :(得分:1)
也许您正在寻找Zipf序列?
In [1]: import networkx as nx
In [2]: nx.utils.zipf_sequence(10,alpha=2.5)
Out[2]: [1, 1, 1, 2, 1, 2, 1, 1, 1, 8]