У меня есть 3D-массив так:Вычислить среднее из вспомогательных массивов в пределах большей 3D массива в Python
a = ([[[25, 4, 54], [58, 14, 27], [35, 40, 62], [53, 72, 86], [87, 4, 51], [89, 34, 22]],
[[61, 99, 89], [52, 93, 18], [ 0, 38, 12], [99, 10, 98], [79, 91, 75], [31, 59, 3]],
[[22, 9, 63], [37, 26, 3], [54, 40, 39], [36, 87, 44], [81, 10, 7], [75, 29, 20]],
[[55, 30, 44], [21, 36, 98], [56, 52, 78], [80, 76, 32], [72, 26, 17], [15, 81, 37]],
[[73, 37, 28], [30, 44, 75], [66, 59, 61], [34, 57, 56], [13, 51, 73], [20, 51, 94]],
[[86, 38, 69], [85, 74, 91], [25, 90, 58], [50, 12, 79], [24, 96, 28], [73, 2, 17]]])
и я пытаюсь вычислить среднее из 4 элементов каждой последующих строки и столбца, затем , по всей матрице, чтобы имели средние квадраты средних квадратов большой матрицы. Я ожидаю иметь в результате целочисленная матрица, как:
([[[49, 52, 47], [47, 40, 64],
... и так далее ...
Я попытался с помощью нарезку с шагом следуют средней функции как
a[::2].mean()
, но он не возвращает результат, который я ожидаю.
Пока что я могу получить это среднее столбца или строки с помощью
numpy.mean(a, axis=0 or 1)
, но это не полезно для меня, потому что она возвращает весь столбец или строки означают, а не средство 4 элементов через матрицу.
Каков наилучший способ для этого?
Возможно обеспечить меньший входной и точный ожидаемый результат как объяснение не имеет смысла для меня. –
Откуда берутся [49, 52, 47]? –
Извините ... [49,52,47] исходит из вычисленного среднего из первых двух элементов строки и первых двух элементов столбца. ([[25, 4, 54], [58, 14, 27], [[61, 99, 89], [52, 93, 18]), но проще, если у меня есть такая матрица, как: g = [[[1,2,3], [1,2,3], [1,2,3], [1,2,3]], [[4,5,6], [4,5,6 ], [4,5,6], [4,5,6]]] Я хотел бы рассчитать среднее значение [[[1,2,3], [1,2,3]], [[4, 5,6], [4,5,6]] и снова среднее значение [[1,2,3], [1,2,3]], [[4,5,6], [4,5, 6]]. Ожидаемым результатом будет: [[[2.5, 3.5, 4.5]], [[2.5, 3.5, 4.5]]]. Но так как я хочу целые числа, это будет: [[2, 3, 4] [2, 3, 4]]. – Fern