Вы пытаетесь добавить содержимое
crash
к каждому элементу примера 2D-списка, который вы предоставили, если я правильно понимаю.Что я сделал, так это преобразовал ваш список образцов в массив numpy, а затем снова выполнил поэлементное добавление, снова используя numpy.
from collections import OrderedDict
from numpy import array, int32, asarray, add
def adding():
dict = OrderedDict([('head', array([2, 0, 20], dtype=int32)), ('valid', '1 # \
volume info valid'), ('filename', '.. / mri / filled - pretess255.mgz'),
('volume', array([256, 256, 256])), ('voxelsize', array([1., 1., 1.])),
('xras', array([-1., 0., 0.])), ('yras', array([0., 0., -1.])),
('zras', array([0., 1., 0.])), ('cras', array([-3.433, 18.419, 28.598]))])
'cras', array([-3.433, 18.419, 28.598])
sample_arr = asarray([[-9.022, -81.936, -1.822],
[-9.554, -82.001, -1.929],
[-10.186, -81.872, -1.779],
[-16.673, 76.043, -18.319],
[-16.989, 76.213, -17.823],
[-17.568, 75.554, -18.709]])
result = add(dict['cras'], sample_arr)
print(result)
print([-3.433+(-9.022), 18.419+(-81.936), 28.598+(-1.822)])
Результат:
[[-12.455 -63.517 26.776]
[-12.987 -63.582 26.669]
[-13.619 -63.453 26.819]
[-20.106 94.462 10.279]
[-20.422 94.632 10.775]
[-21.001 93.973 9.889]]
[-12.455, -63.51700000000001, 26.776]