VisibleDeprecationWarning: Verwendung einer nicht-integer-Zahl statt einer Ganzzahl wird zu einem Fehler führen in der Zukunft

Beim ausführen eines python-Programm mit der folgenden Funktion image[x,y] = 0 gibt die folgende Fehlermeldung. Was bedeutet das und wie es zu lösen? Danke.

Warnung

VisibleDeprecationWarning: using a non-integer number instead of an integer   
will result in an error in the future
image[x,y] = 0
Illegal instruction (core dumped)

Code

def create_image_and_label(nx,ny):
  x = np.floor(np.random.rand(1)[0]*nx)
  y = np.floor(np.random.rand(1)[0]*ny)

  image = np.ones((nx,ny))
  label = np.ones((nx,ny))
  image[x,y] = 0
  image_distance = ndimage.morphology.distance_transform_edt(image)

  r = np.random.rand(1)[0]*(r_max-r_min)+r_min
  plateau = np.random.rand(1)[0]*(plateau_max-plateau_min)+plateau_min

  label[image_distance <= r] = 0 
  label[image_distance > r] = 1
  label = (1 - label)

  image_distance[image_distance <= r] = 0 
  image_distance[image_distance > r] = 1
  image_distance = (1 - image_distance)*plateau

  image = image_distance + np.random.randn(nx,ny)/sigma

  return image, label[92:nx-92,92:nx-92]
  • Welche Versionen von numpy/scipy?
  • Habe es gerade getestet, die numpy-version 1.11.0; die scipy-version 0.17.1
  • np.floor gibt Ihnen einen float-aber die Indizierung wird nur möglich sein mit ganzen zahlen in die Zukunft. So erhalten Sie eine deprecation-Warnung, dass ein upgrade von der version von numpy wird, brechen Sie den code in der Zukunft. Aber diese Warnung sollte nicht in einem Fehler resultieren. Haben Sie versucht das Teil in der Isolierung, was bedeutet, dass nur die Schöpfung des image array und setzen ein element auf null?
InformationsquelleAutor user288609 | 2016-08-22
Schreibe einen Kommentar