Nasıl düzeltilir? valueerror: bir dizi öğesini bir diziyle ayarlama
Python kullanırken karşılaşabileceğiniz bir hata:
ValueError : setting an array element with a sequence.
Bu hata genellikle birden fazla sayıyı bir NumPy dizisinde tek bir konumda gruplamaya çalışırken ortaya çıkar.
Aşağıdaki örnekte bu hatanın pratikte nasıl düzeltileceğ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 data = np. array ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Şimdi dizinin ilk konumuna iki sayı yerleştirmeye çalıştığımızı varsayalım:
#attempt to cram values '4' and '5' both into first position of NumPy array
data[0] = np. array ([4,5])
ValueError : setting an array element with a sequence.
Hata bize tam olarak neyi yanlış yaptığımızı söylüyor: NumPy dizisinin bir öğesini bir dizi değerle tanımlamaya çalıştık.
Özellikle NumPy dizisinin ilk pozisyonuna “4” ve “5” değerlerini yerleştirmeye çalıştık.
Bu mümkün olmadığından hata alıyoruz.
Hata nasıl düzeltilir?
Bu hatayı düzeltmenin yolu, dizinin ilk konumuna basitçe bir değer atamaktır:
#assign the value '4' to the first position of the array
data[0] = np. array ([4])
#view updated array
data
array([ 4, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Herhangi bir hata almadığımızı unutmayın.
Dizi elemanlarına aslında iki yeni değer atamak istiyorsak aşağıdaki sözdizimini kullanmamız gerekir:
#assign the values '4' and '5' to the first two positions of the array
data[0:2] = np. array ([4, 5])
#view updated array
data
array([ 4, 5, 3, 4, 5, 6, 7, 8, 9, 10])
Tablodaki ilk iki değerin değiştiğini, diğer tüm değerlerin aynı kaldığını unutmayın.
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ı