我有一個程序需要一些大的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]'會起作用,但效率不高。 –