2016-05-04 5 views
-2

Я пытаюсь заменить часть массива с другого массива следующим образом:Как заменить часть массива с другим массивом [NumPy]

data[1:-1,1:-1,1] = tmp_data 

data[1:-1,1:-1,1] и tmp_data оба одного и того же размера , Я получаю это сообщение об ошибке:

TypeError: 'tuple' object does not support item assignment 

Почему это происходит? Как я могу это исправить? Спасибо

+2

'data' выглядит как кортеж, а не массив. – user2357112

+0

'print (type (data [1: -1,1: -1,1]))' yields в '' И тогда программа останавливается в той же строке с параметрами TypeError: tuple должны быть целыми или ломтиками, а не tuple' –

+0

Это ... не имеет смысла. Вы говорите, что 'print' печатает' ', а затем *, что' print' line * создает TypeError? Это невозможно. – user2357112

ответ

-1

Поскольку размер обоих массивов одинаковый. данные [1: -1,1: -1,1] = tmp_data не будет работать. вам необходимо указать размер tmp_data, который будет исправлен в индексе присваивания.

>>> import numpy as np 
>>> a = np.arange(20).reshape(2,2, 5) 
>>> b = np.arange(21,41).reshape(2,2, 5) 
>>> a[0:1,0:1,1]=b[0:1,0:1,1] 
>>> a 
array([[[ 0, 22, 2, 3, 4], 
     [ 5, 6, 7, 8, 9]], 

     [[10, 11, 12, 13, 14], 
     [15, 16, 17, 18, 19]]]) 
Смежные вопросы