草庐IT

random_negative

全部标签

Python 列表/数组 : disable negative indexing wrap-around in slices

虽然我发现负数环绕(即A[-2]索引倒数第二个元素)在许多情况下非常有用,但当它发生在切片内部时,它通常更多与其说是有用的功能,不如说是一种烦恼,我经常希望有一种方法来禁用该特定行为。下面是一个固定的2D示例,但我对其他数据结构和其他维数也有过几次同样的不满。importnumpyasnpA=np.random.randint(0,2,(5,10))deffoo(i,j,r=2):'''sumofneighbourswithinrstepsofA[i,j]'''returnA[i-r:i+r+1,j-r:j+r+1].sum()在上面的切片中,我宁愿切片的任何负数都被视为与None相同

python - scipy.stats 随机抽取之间的区别....rvs 和 numpy.random

似乎如果它是相同的分布,从numpy.random中抽取随机样本比从scipy.stats.-.rvs中抽取随机样本更快。我想知道是什么导致两者之间的速度差异? 最佳答案 scipy.stats.uniform其实用的是numpy,这里是stats中对应的函数(mtrand是numpy.random的别名)classuniform_gen(rv_continuous):def_rvs(self):returnmtrand.uniform(0.0,1.0,self._size)scipy.stats有一些开销用于错误检查和使接口(in

python - 我可以在 numpy.random.seed() 中输入哪些数字?

我注意到你可以在numpy.random.seed()中放入各种数字,例如numpy.random.seed(1),numpy.random.seed(101)。不同的数字是什么意思?你如何选择号码? 最佳答案 考虑一个非常基本的随机数生成器:Z[i]=(a*Z[i-1]+c)%m这里,Z[i]是第ith个随机数,a是乘数,c是增量-对于不同的a、c和m组合,您有不同的生成器。这被称为linearcongruentialgenerator由莱默介绍。该除法的余数或模数(%)将生成一个介于零和m-1之间的数字,并通过设置U[i]=Z[

python - 临时设置随机种子,比如 "new Random()"

在Python中,使用特定种子但不重新播种全局状态来生成随机数的最佳方法是什么?在Java中,您可以简单地编写:Randomr=newRandom(seed);r.nextDouble();并且标准的Math.random()不会受到影响。在Python中,我能看到的最佳解决方案是:old_state=random.getstate()random.seed(seed)random.random()random.setstate(old_state)这是惯用的Python吗?它似乎比不需要“恢复”旧种子的Java解决方案干净得多。我很想知道是否有更好的方法来做到这一点。

python - 为什么 random.choice 需要一个列表

这可能是一个非常直截了当的问题,但希望对原因做一个简单的解释?下面的代码需要一个列表来获得一张随机卡片。importrandomcard=random.choice(["hearts","clubs","frogs"])我很困惑为什么它需要一个列表,为什么我不能这样做。import=randomcard=random.choice("hearts","clubs","frogs")我很好,我做不到,我只是想知道为什么? 最佳答案 因为墨菲定律:任何可以以错误方式做的事情,总有一天会被某人以错误的方式做。您建议的API需要random

python - random.choice 不是随机的

我在Linux上的多个并行FCGI进程中使用Python2.5。我用chars=string.ascii_letters+string.digitscookie=''.join([random.choice(chars)forxinrange(32)])生成不同的cookie。假设RNG是从/dev/urandom播种的,并且随机数序列来自Mersennetwister,我预计碰撞的可能性几乎为零。但是,我确实经常看到冲突,即使任何时候只有少数(为什么随机数不是更随机? 最佳答案 它不应该生成重复项。importrandomchar

python:当您使用random.choice(seq)从序列中随机选择一个元素时如何知道索引

我非常清楚如何使用random.choice(seq)从列表中选择一个随机项,但我如何知道该元素的索引? 最佳答案 importrandoml=['a','b','c','d','e']i=random.choice(range(len(l)))printi,l[i] 关于python:当您使用random.choice(seq)从序列中随机选择一个元素时如何知道索引,我们在StackOverflow上找到一个类似的问题: https://stackoverf

python - 如何在生成器上使用 random.shuffle()? Python

如何在不从生成器初始化列表的情况下在生成器上使用random.shuffle()?这可能吗?如果不是,我还应该如何在列表中使用random.shuffle()?>>>importrandom>>>random.seed(2)>>>x=[1,2,3,4,5,6,7,8,9]>>>defyielding(ls):...foriinls:...yieldi...>>>foriinrandom.shuffle(yielding(x)):...printi...Traceback(mostrecentcalllast):File"",line1,inFile"/usr/lib/python2.7

python, numpy bool 数组 : negation in where statement

与:importnumpyasnparray=get_array()我需要做以下事情:foriinrange(len(array)):ifrandom.uniform(0,1)数组是一个numpy.array。我希望我能做类似的事情:array=np.where(np.random.rand(len(array))但我得到以下结果(指“非数组”):Thetruthvalueofanarraywithmorethanoneelementisambiguous.Usea.any()ora.all()为什么我可以取数组的值而不是取反?目前我解决了:array=np.where(np.rand

python - 'random' 的独立实例

下面的代码试图说明我想要什么。我基本上想要两个彼此独立运行的“随机”实例。我想在一个类(class)内播种“随机”而不影响另一类(class)的“随机”。我该怎么做?classRandomSeeded:def__init__(self,seed):importrandomasr1self.random=r1self.random.seed(seed)defget(self):printself.random.choice([4,5,6,7,8,9,2,3,4,5,6,7,])classRandom:def__init__(self):importrandomasr2self.rando