'numpy.float64' nesnesi öğe atamasını desteklemiyor hatası nasıl düzeltilir?
Python kullanırken karşılaşabileceğiniz yaygın bir hata:
TypeError: 'numpy.float64' object does not support item assignment
Bu hata genellikle float64 türündeki bir NumPy değişkenine yeni bir değer atamak için köşeli parantez kullanmaya çalıştığınızda ortaya çıkar.
Aşağıdaki örnekte bu hatanın pratikte nasıl çözüleceği gösterilmektedir.
Hata nasıl yeniden oluşturulur?
Diyelim ki 15.22 değerine sahip bir NumPy değişkeni oluşturduk ve ona 13.7 gibi yeni bir değer vermek için parantez kullanmaya çalıştık:
import numpy as np #define some float value one_float = np. float64 (15.22) #attempt to modify float value to be 13.7 one_float[0] = 13.7 TypeError: 'numpy.float64' object does not support item assignment
‘numpy.float64’ nesnesinin öğe atamasını desteklemediği hatasını alıyoruz.
One_float bir skaler olduğu için bu hatayı aldık ancak onu, dizin konumu 0’daki değeri değiştirmek için köşeli parantez kullanabileceğimiz bir dizi olarak ele almaya çalıştık.
one_float bir dizi olmadığından değerini değiştirmeye çalışırken köşeli parantez kullanamayız.
Hata nasıl düzeltilir?
Bu hatayı çözmenin yolu, kayan noktaya yeni bir değer atarken köşeli parantez kullanmamaktır:
#modify float value to be 13.7
one_float = 13.7
#view float
print (one_float)
13.7
Parantez kullanmadığımız için değeri 15,22’den 13,7’ye değiştirmeyi başardık.
Bir diziyle çalıştığınız sürece belirli dizin konumlarındaki değerleri değiştirmek için köşeli parantez kullanmanın mümkün olduğunu unutmayın.
Örneğin, aşağıdaki kod, bir NumPy dizisinin ilk öğesinin köşeli ayraç gösterimi kullanılarak 15,22’den 13,7’ye nasıl değiştirileceğini gösterir:
import numpy as np
#define a NumPy array of floats
many_floats = np. float64 ([15.22, 34.2, 15.4, 13.2, 33.4])
#modify float value in first index position of array to be 13.7
many_floats[0] = 13.7
#view updated array
print (many_floats)
[13.7 34.2 15.4 13.2 33.4]
Bu sefer de bir NumPy dizisiyle çalıştığımız için hata almıyoruz, dolayısıyla parantez kullanmak mantıklı.
Ek kaynaklar
Aşağıdaki eğitimlerde Python’daki diğer yaygın hataların nasıl düzeltileceği açıklanmaktadır:
Python’da Nasıl Düzeltilir: ‘numpy.ndarray’ nesnesi çağrılabilir değil
Nasıl düzeltilir: TypeError: ‘numpy.float64’ nesnesi çağrılabilir değil
Nasıl Onarılır: Tür Hatası: Beklenen Dize veya Bayt Nesnesi