我有一個運行多次的模擬。每次生成一個數組並將其插入到一個更大的數組中以記錄所有數據。例如如何在python中平均數組數組?
record = []
for i in range(2):
r = random.random()
array = numpy.arange(20)*r
array.shape = (10,2)
record.append(array)
record = numpy.array(record)
其產生:
[[[ 0. 0.88765927]
[ 1.77531855 2.66297782]
[ 3.55063709 4.43829637]
[ 5.32595564 6.21361492]
[ 7.10127419 7.98893346]
[ 8.87659274 9.76425201]
[ 10.65191128 11.53957056]
[ 12.42722983 13.3148891 ]
[ 14.20254838 15.09020765]
[ 15.97786693 16.8655262 ]]
[[ 0. 0.31394919]
[ 0.62789839 0.94184758]
[ 1.25579677 1.56974596]
[ 1.88369516 2.19764435]
[ 2.51159354 2.82554274]
[ 3.13949193 3.45344112]
[ 3.76739031 4.08133951]
[ 4.3952887 4.70923789]
[ 5.02318709 5.33713628]
[ 5.65108547 5.96503466]]]
由於每個array
表示在我的程序的模擬。我想平均包含在record
內的2個不同的陣列。
基本上我想要一個與array
一樣大小的數組,但它將是所有單獨運行的平均值。
我可以明明只是循環數組結束,但有大量的數據在我的實際模擬,所以我認爲這將是對時間非常昂貴
例如放出來(當然它不會是零):
average = [[0.0, 0.0]
[0.0, 0.0]
[0.0, 0.0]
[0.0, 0.0]
[0.0, 0.0]
[0.0, 0.0]
[0.0, 0.0]
[0.0, 0.0]
[0.0, 0.0]
[0.0, 0.0]]
你確定'numpy.average(記錄,軸= 0)'沒有做你想要的嗎?這與'array'具有相同的維度,每個條目是來自10次模擬的相應條目的平均值。 –
'record.mean(axis = 0)'也可以。 –
@WarrenWeckesser - 我認爲你應該把它作爲一個答案... – root