Nasıl düzeltilir: 'numpy.ndarray' nesnesinin 'index' özelliği yok
NumPy’yi kullanırken karşılaşabileceğiniz bir hata:
AttributeError : 'numpy.ndarray' object has no attribute 'index'
Bu hata, dizin özniteliklerinin bulunmadığı bir NumPy dizisinde index() işlevini 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?
Aşağıdaki NumPy dizisine sahip olduğumuzu varsayalım:
import numpy as np #create NumPy array x = np. array ([4, 7, 3, 1, 5, 9, 9, 15, 9, 18])
Dizideki minimum ve maksimum değerleri bulmak için aşağıdaki sözdizimini kullanabiliriz:
#find minimum and maximum values of array
min_val = np. min (x)
max_val = np. max (x)
#print minimum and maximum values
print (min_val, max_val)
1 18
Şimdi dizideki minimum ve maksimum değerlerin indeks konumunu bulmaya çalıştığımızı varsayalım:
#attempt to print index position of minimum value
x. index (min_val)
AttributeError : 'numpy.ndarray' object has no attribute 'index'
Bir NumPy dizisine index() işlevini uygulayamadığımız için bir hata alıyoruz.
Hata nasıl çözülür?
NumPy dizisindeki minimum ve maksimum değerlerin indeks konumunu bulmak için NumPywhere () fonksiyonunu kullanabiliriz:
#find index position of minimum value
n.p. where (x == min_val)
(array([3]),)
#find index position of maximum value
n.p. where (x == max_val)
(array([9]),)
Sonuçtan şunları görebiliriz:
- Dizinin minimum değeri dizin konumu 3’te bulunur.
- Dizinin maksimum değeri dizin konumu 9’da bulunur.
Bir NumPy dizisindeki herhangi bir değerin indeks konumunu bulmak için aynı genel sözdizimini kullanabiliriz.
Örneğin, NumPy dizisinde hangi dizin konumlarının 9 değerine eşit olduğunu bulmak için aşağıdaki sözdizimini kullanabiliriz:
#find index positions that are equal to the value 9
n.p. where (x == 9 )
(array([5, 6, 8]),)
Sonuçtan 5, 6 ve 8 numaralı indeks konumlarındaki değerlerin hepsinin 9’a eşit olduğunu görebiliriz.
Ek kaynaklar
Aşağıdaki eğitimlerde Python’daki diğer yaygın hataların nasıl düzeltileceği açıklanmaktadır:
Pandas’ta KeyError Nasıl Düzeltilir
Nasıl düzeltilir? ValueError: float NaN int’ye dönüştürülemiyor
Nasıl düzeltilir? ValueError: İşlenenler şekillerle yayınlanamadı