2016-05-04 11 views
-2

Ich versuche, einen Abschnitt eines Arrays mit einem anderen Array zu ersetzen, wie folgt:Wie man einen Abschnitt eines Arrays mit einem anderen Array ersetzen [numpy]

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

data[1:-1,1:-1,1] und tmp_data sind beide von der gleichen Größe . Ich erhalte diese Fehlermeldung:

TypeError: 'tuple' object does not support item assignment 

Warum passiert das? Wie kann ich es reparieren? Danke

+2

'Daten' scheint ein Tupel zu sein, kein Array. – user2357112

+0

'print (type (data [1: -1,1: -1,1]))' ergibt in '' Und dann stoppt das Programm bei der gleichen Zeile mit 'TypeError: tuple indices müssen ganze Zahlen oder Scheiben sein, nicht Tupel " –

+0

Das ... macht keinen Sinn. Willst du damit sagen, dass 'print'' 'class 'numpy.darray'>' druckt und dann * die 'print' Zeile * einen TypeError erzeugt? Das ist unmöglich. – user2357112

Antwort

-1

Da Größe der beiden Arrays sind die gleichen. Daten [1: -1,1: -1,1] = tmp_data wird nicht funktionieren. müssen Sie die Größe von tmp_data angeben, die im Zuordnungsindex korrigiert wird.

>>> 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]]]) 
Verwandte Themen