8
Podczas uruchamiania programu pythonowego obejmującego następującą funkcję, image[x,y] = 0
wyświetla następujący komunikat o błędzie. Co to oznacza i jak go rozwiązać? Dzięki.VisibleDeprecationWarning: użycie liczby niecałkowitej zamiast liczby całkowitej spowoduje wystąpienie błędu w przyszłości
Ostrzeżenie
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)
Kod
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]
Jakie wersje 'numpy' /' scipy'? –
Właśnie to przetestowałem, wersja numpy to 1.11.0; Wersja scipy to 0.17.1 – user288609
'np.floor' daje ci zmiennoprzecinkowe, ale indeksowanie będzie możliwe tylko z liczbami całkowitymi w przyszłości. Otrzymasz ostrzeżenie o wycofaniu, że uaktualnienie wersji 'numpy' złamie twój kod w przyszłości. Ale to ostrzeżenie nie powinno powodować błędu. Czy próbowałeś tej części w izolacji, co oznacza tylko utworzenie tablicy 'image' i ustawienie jednego elementu na zero? – jotasi