使用Numpy生成一个变量max / min的随机整数序列

时间:2017-10-05 01:35:54

标签: python performance numpy random scientific-computing

numpy.random.uniform支持数组参数,但np.random.randint不支持:

import numpy as np 
two_random_uniforms = np.random.uniform([0, 1], [3, 4])
this_raises_exception = np.random.randint([0, 1], [3, 4])

我想从第二行代码中获得的行为等同于:

result = []
for lown, highn in zip([0, 1], [3, 4]):
    result.append(np.random.randint(lown, highn))

有没有办法在不编写python循环的情况下用变量max / min完成随机整数生成?对于我的应用程序所需的大型数组,上述解决方法将无法接受。我可以在cython中编写循环,但是如果可能的话我宁愿使用Numpy。

1 个答案:

答案 0 :(得分:2)

你可以做的一件简单事就是生成花车并围绕它们。

def my_randint(low, high):
    return np.floor(np.random.uniform(low, high))

这个程序可能会稍微调整一下结果,使某些整数比其他整数更容易,但除非您正在使用加密或其他敏感应用程序,它可能不重要。