我需要创建一个 python 函数来生成一个 n 维向量,使得每个元素都是 [0,100) 中的实数

I need to create a python function that makes an n-dimensional vector such that each element is a real number in [0,100)

我不太擅长 python,我需要创建一个函数 randvec(n),它将创建一个 n 维向量,其中每个元素都是 [0,100) 中的随机实数.以下是我目前所拥有的。

def randvec(n):
    vector = np.ndarray((1,n),dtype=float)
    for i in range(0,n):
        vector[i] = np.random.uniform(0,100)
        print(vector[i])

test = randvec(4)
print(test)

输出:[64.58722344 64.58722344 64.58722344 64.58722344]

根据我在 for 循环内打印时的输出,我认为 random.uniform() 不是我想要使用的函数,因为它给了我 n 次相同的随机数。

我也收到此错误消息"index 1 is out of bounds for axis 0 with size 1."

如果您看到我的错误,请告诉我!谢谢

def randvec(n):
   return [random.random()*100 for _ in range(n)]

将生成 n 个真正的随机值,每个值都在区间 [0, 100) 内。有关 random() 方法的更多信息,请参阅 class Random

但这是一个 PRNG(伪随机数生成器),这意味着它可以预测 "random" 序列。来自文档:

Warning: The pseudo-random generators of this module should not be used for security purposes. Use os.urandom() or SystemRandom if you require a cryptographically secure pseudo-random number generator.

出于安全考虑,请使用 TRNG 或 CSPRNG。