2016-08-22 5 views
8

निम्न त्रुटि से जुड़े एक पायथन प्रोग्राम चलाते समय image[x,y] = 0 निम्न त्रुटि संदेश देता है। इसका क्या अर्थ है और इसे कैसे हल करें? धन्यवाद।VisibleDeprecation चेतावनी: एक पूर्णांक की बजाय एक गैर-पूर्णांक संख्या का उपयोग करने के परिणामस्वरूप भविष्य में

चेतावनी

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) 

कोड

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] 
+0

के बजाय np.int का उपयोग करें 'numpy'/'scipy' के कौन से संस्करण? –

+0

मैंने अभी इसका परीक्षण किया है, numpy संस्करण 1.11.0 है; scipy संस्करण 0.17.1 – user288609

+0

'np.floor' आपको एक फ्लोट देता है लेकिन सूचकांक भविष्य में पूर्णांक के साथ ही संभव होगा। तो आपको एक बहिष्करण चेतावनी मिलती है कि 'numpy' का संस्करण अपग्रेड भविष्य में आपके कोड को तोड़ देगा। लेकिन इस चेतावनी के परिणामस्वरूप कोई त्रुटि नहीं होनी चाहिए। क्या आपने इस हिस्से को अलगाव में करने की कोशिश की है, जिसका अर्थ केवल 'छवि' सरणी का निर्माण और शून्य को शून्य पर सेट करना है? – jotasi

उत्तर

13

चेतावनी सूचकांक अपने सरणी के लिए तैरता उपयोग करने के लिए नहीं कह रहा है;

संबंधित मुद्दे