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 vonnumpy
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 desimage
array und setzen ein element auf null?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Warnung sagt nicht zu verwenden, schwimmt index für das array zu verwenden; verwenden Sie
np.int
stattnp.floor