#python #pandas #numpy
#python #панды #numpy
Вопрос:
Как мне преобразовать 3-мерный массив NumPy [sample_index, channel, data] в фрейм данных с каждой выборкой в виде строки и каналами в виде столбца?
Массивы numpy выглядят следующим образом:
import numpy as np
np.random.uniform(-25, 100, size=(6400,3,100*100))
Комментарии:
1. Вы описали, что вы хотите, чтобы происходило с каждым образцом / каналом. Что бы вы хотели сделать с 3-м измерением?
2. @CameronRiddell Я полагаю, что эти 100 * 100 точек данных могут быть сохранены в списке.
Ответ №1:
Давайте попробуем:
samples, size = 6, 2*2
data = np.arange(samples*size *3).reshape(samples, 3, size)
pd.DataFrame(data.swapaxes(1,2).reshape(-1,3),
np.repeat(np.arange(samples), size)
)
Вывод, здесь каждый индекс представляет образец:
0 1 2
0 0 4 8
0 1 5 9
0 2 6 10
0 3 7 11
1 12 16 20
1 13 17 21
1 14 18 22
1 15 19 23
2 24 28 32
2 25 29 33
2 26 30 34
2 27 31 35
3 36 40 44
3 37 41 45
3 38 42 46
3 39 43 47
4 48 52 56
4 49 53 57
4 50 54 58
4 51 55 59
5 60 64 68
5 61 65 69
5 62 66 70
5 63 67 71