循环并乘以3个不同的numpy数组的随机百分比,加起来等于100%

循环并乘以3个不同的numpy数组的随机百分比,加起来等于100%,numpy,for-loop,math,random,numpy-ndarray,Numpy,For Loop,Math,Random,Numpy Ndarray,假设我有这三个数组 array1 = np.array([4,5,6]) array2 = np.array([3,2,1]) array3 = np.array([2,3,5]) 我想创建一个循环,将每个数组乘以一个随机百分比,但这三个百分比加起来必须等于100%。例如,在第一个循环中,它可以执行以下操作 array1 * 30% array2 * 20% array3 * 50% 在第二个循环中,它对每个数组执行不同的随机百分比 array1 * 15% array2 * 90% arr

假设我有这三个数组

array1 = np.array([4,5,6])
array2 = np.array([3,2,1])
array3 = np.array([2,3,5])
我想创建一个循环,将每个数组乘以一个随机百分比,但这三个百分比加起来必须等于100%。例如,在第一个循环中,它可以执行以下操作

array1 * 30%
array2 * 20%
array3 * 50%
在第二个循环中,它对每个数组执行不同的随机百分比

array1 * 15%
array2 * 90%
array3 * 5%

如果有人有任何想法如何使这个循环成为可能,请让我知道。谢谢

既然您要求循环:

for _ in range(10):
    weights = np.random.rand(3)
    weights = weights/weights.sum()

    # multiply
    array1 * weights[0]
    ....

既然您要求循环:

for _ in range(10):
    weights = np.random.rand(3)
    weights = weights/weights.sum()

    # multiply
    array1 * weights[0]
    ....

传奇谢谢光!传奇谢谢光!