У меня есть матрица 4D с данными МРТ (объем 3D за несколько временных шагов), и я хочу извлечь максимальные значения по 4-му измерению, используя матрицу 3D. Следовательно, значения индекса трехмерной матрицы - это индекс в 4-м измерении, из которого я хочу извлечь значение. Имейте в виду, что значение не одно и то же, то есть B = A[:,:,:, someValue]
не является решением.
Для дальнейшего объяснения я привожу два примера:
В полученной матрице B[i1, j1, k1]
I хочу извлечь значение из начальной матрицы A[i1, j1, k1, someValue1]
и в B[i2, j1, k1]
я хочу извлечь A[i1, j1, k1, someValue2]
Вот код, который, как я думал, сработает:
import numpy as np
maxIdcs = np.argmax(conc_data, 3) #The indices where the maximum value is
maxVals = np.take(MRdata, maxIdcs)
Так что someValue1
и someValue2
я получаю от команды np.argmax
, но я не знаю, как правильно использовать np.take
(я думаю).