根据预先指定的和缩放数组

2024-05-19 20:12:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望获取一个现有数组并相应地对其进行缩放,以便最终的数组和是一个特定的(用户输入)数字。例如:

import numpy as np

array = np.random.randint(5, size=(2, 2))
sum   = np.sum(array)
print(array)
maxsum = 5

array = np.round((array*maxsum)/sum)

print(np.sum(array))
print(array)

将上述代码用于如下数组:[[1 4] [4 3]]返回[[0. 2.] [2. 1.]],这很好,因为它根据每个元素的“重要性”求和到我想要的总和

当我想缩放更大的数组(如60x60或更大的数组)时,问题就开始了,因为每个元素都在[0,1]范围内进行了规范化,所以每个元素在除以一个大数字(和)后都非常接近于0,因此每个最后的元素都返回为0

我需要输出为整数,并且总是正值

我曾尝试使用ceil或floor,而不是圆形,并根据初始数组的最大值进行规格化,但我仍然找不到解决方案。任何提示都会有帮助,提前谢谢


Tags: 用户importnumpy元素sizeasnp数字