2
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) も機能しません。ありがとうございました

4

2 に答える 2

3

私はnumpyを知らないので、おそらく別の解決策があるかもしれませんが、次の方法でうまくいくはずです:

W = [x for x in powerlaw_sequence(100,exponent=2.5) if x != 0]

Wただし、これにより、条件により除外される要素の数だけ の長さが短くなりますx != 0

于 2012-01-26T10:23:12.310 に答える
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]

http://networkx.lanl.gov/reference/generated/networkx.utils.random_sequence.zipf_sequence.html#networkx.utils.random_sequence.zipf_sequence

于 2012-01-26T14:35:10.150 に答える