Попробуйте это:
import numpy as np
a= [(0, 2, np.NaN),
...: (1, 3, 1) ]
...:
...: b = [(1, 3, 2),
...: (3, 4, 7)]
...:
...: c = [(np.NaN, 5, 2),
...: (1, 3, 2)]
d=[a,b,c,b]
np.array(d).shape
>>(4, 2, 3)
np.nanmean(d,axis=0) #removes the first axis
>>array([[0.66666667, 3.25 , 2. ],
[2. , 3.5 , 4.25 ]])
np.nanmean(d,axis=0).shape
>>(2, 3)
np.nanmean(d,axis=1) #removes the second axis
>>array([[0.5, 2.5, 1. ],
[2. , 3.5, 4.5],
[1. , 4. , 2. ],
[2. , 3.5, 4.5]])
np.nanmean(d,axis=1).shape
>>(4, 3)
np.nanmean(d,axis=2) #removes the third axis
>>array([[1. , 1.66666667],
[2. , 4.66666667],
[3.5 , 2. ],
[2. , 4.66666667]])
np.nanmean(d,axis=2).shape
>>(4, 2)
Ключевое слово axis указывает, по какой оси вы будете вычислять.Другими словами, указанная ось будет удалена путем усреднения.
Итак, что вам конкретно нужно, это np.nanmean(d,axis=0)
.