我希望获取一个现有数组并相应地对其进行缩放,以便最终的数组和是一个特定的(用户输入)数字。例如:
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,而不是圆形,并根据初始数组的最大值进行规格化,但我仍然找不到解决方案。任何提示都会有帮助,提前谢谢
目前没有回答
相关问题 更多 >
编程相关推荐