В настоящее время я работаю над многомерным массивом NumPy со следующей структурой:
rawr = [ [[A B C] [A B C]] [[...] [...]] ]
Я пытаюсь сложить два последних значения ('B' и 'C') каждой записи в том же измерении, значение A которой является одинаковым, и оставьте только одну запись с этим конкретным индексом.В качестве примера, рассматривая следующую конфигурацию:
[ [[4 5 0.3] [4 3 0.6]] [[8 5 0.3] [4 9 0.8]] ]
Надлежащий вывод должен выглядеть следующим образом:
[ [[4 8 0.9]] [[8 5 0.3] [4 9 0.8]] ]
При поиске похожих вопросов я наткнулся на этот подход с использованием кадров данных Panda:
x,y,z = rawr.shape
out_arr = np.column_stack((np.repeat(np.arange(x),y),rawr.reshape(x*y,-1)))
out_df = pd.DataFrame(out_arr, columns = ["I", "A", "B", "C"])
wbyt = out_df.groupby(["I", "A"], sort = True).sum().reset_index()
, что приводит к следующему выводу:
I A B C
0 0.0 4.0 8.0 0.9
1 1.0 4.0 9.0 0.8
2 1.0 8.0 5.0 0.3
Значения были правильно обновлены, но теперь я не могу получить правильный вывод из результирующего кадра данных.
--- Редактирование для добавления дополнительной информации ---
Что я действительно хочу, и учитывая то, чего я уже достиг с Pandas, - это получить массив, содержащий группы массивов, значение которых 'I'та же.Итак, следуя приведенному выше примеру, результирующий массив должен содержать следующие два блока:
[[4 8 0,9]] и [[4 9 0,8] [8 5 0,3]]
Anyидеи о том, как мне этого добиться?
Спасибо