我有一个程序需要一些大的NumPy数组,并且基于某些外部数据,通过向随机选择的单元格中添加一个来增加它们,直到数组的总和等于外部数据为止。简化和更小的版本是这样的:在NumPy数组中随机增长值
import numpy as np
my_array = np.random.random_integers(0, 100, [100, 100])
## Just creating a sample version of the array, then getting it's sum:
np.sum(my_array)
499097
所以,假如我想,直到其总和为100万增长了阵列,而且我想通过不断地随机细胞,加入1至,直到我们这样做打的总和,我做的是这样的:
diff = 1000000 - np.sum(my_array)
counter = 0
while counter < diff:
row = random.randrange(0,99)
col = random.randrange(0,99)
coordinate = [row, col]
my_array[coord] += 1
counter += 1
当行/列结合起来,返回数组中随机单元格,然后该单元由1土生土长的IT重复,直到次数由它将1加入随机单元格==原始数组的总和与目标总和(1,000,000)之间的差值。
但是,当我运行此检查后的结果 - 总是总是关闭。在与上述相同的号码运行它后,这种情况下:
np.sum(my_array)
99667203
我无法弄清楚什么是占这个巨大的差异。是否有更多pythonic的方式去做这件事?
这应该是'my_array [row,col]'。 'my_array [row] [col]'会起作用,但效率不高。 –