Немного обобщая, давайте начнем с фрейма, который имеет несколько столбцов:
>>> import numpy as np
>>> from datatable import f, dt
>>> np.random.seed(1)
>>> foo = dt.Frame(x=np.random.randn(10), y=np.random.randn(10))
>>> foo
x y
-- --------- ----------
0 1.62435 1.46211
1 -0.611756 -2.06014
2 -0.528172 -0.322417
3 -1.07297 -0.384054
4 0.865408 1.13377
5 -2.30154 -1.09989
6 1.74481 -0.172428
7 -0.761207 -0.877858
8 0.319039 0.0422137
9 -0.24937 0.582815
[10 rows x 2 columns]
Сначала простой метод .mean()
вернет фрейм 1x2 со значением на столбец:
>>> foo.mean()
x y
-- ---------- ---------
0 -0.0971409 -0.169588
[1 row x 2 columns]
Если вы хотите получить среднее значение для одного столбца, вы должны выбрать этот столбец из foo
сначала: foo[:, f.y]
, или foo[:, 'y']
, или просто foo['y']
:
>>> foo['y'].mean()
y
-- ---------
0 -0.169588
[1 row x 1 column]
Теперь,если вы хотите иметь номер вместо кадра 1x1, вы можете использовать селектор [0, 0]
или вызвать функцию .mean1()
вместо:
>>> foo['y'].mean()[0, 0]
-0.1695883821153589
>>> foo['y'].mean1()
-0.1695883821153589