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。
答案 0 :(得分:2)
你可以做的一件简单事就是生成花车并围绕它们。
def my_randint(low, high):
return np.floor(np.random.uniform(low, high))
这个程序可能会稍微调整一下结果,使某些整数比其他整数更容易,但除非您正在使用加密或其他敏感应用程序,它可能不重要。