Jak naprawić: tylko tablice o rozmiarze 1 można konwertować na skalary pythona


Błąd, który możesz napotkać podczas korzystania z Pythona, to:

 TypeError : only size-1 arrays can be converted to Python scalars

Ten błąd pojawia się najczęściej przy próbie użycia np.int() do konwersji tablicy NumPy zawierającej wartości zmiennoprzecinkowe na tablicę wartości całkowitych.

Jednak ta funkcja akceptuje tylko pojedynczą wartość zamiast tablicy wartości.

Zamiast tego powinieneś użyć x.astype(int) do konwersji tablicy NumPy wartości zmiennoprzecinkowych na tablicę wartości całkowitych, ponieważ ta funkcja jest w stanie zaakceptować tablicę.

Poniższy przykład pokazuje, jak w praktyce skorygować ten błąd.

Jak odtworzyć błąd

Załóżmy, że tworzymy następującą tablicę NumPy wartości zmiennoprzecinkowych:

 import numpy as np

#create NumPy array of float values
x = np. array ([3, 4.5, 6, 7.7, 9.2, 10, 12, 14.1, 15])

Załóżmy teraz, że spróbujemy przekonwertować tę tablicę wartości zmiennoprzecinkowych na tablicę wartości całkowitych:

 #attempt to convert array to integer values
n.p. int (x)

TypeError : only size-1 arrays can be converted to Python scalars 

Otrzymujemy błąd TypeError , ponieważ funkcja np.int() akceptuje tylko pojedyncze wartości, a nie tablicę wartości.

Jak naprawić błąd

W celu konwersji tablicy NumPy zawierającej wartości zmiennoprzecinkowe na wartości całkowite możemy skorzystać z następującego kodu:

 #convert array of float values to integer values
x. astype (int)

array([ 3, 4, 6, 7, 9, 10, 12, 14, 15])

Należy pamiętać, że tablica wartości została przekonwertowana na liczby całkowite i nie otrzymujemy żadnych błędów, ponieważ funkcja astype() jest w stanie obsłużyć tablicę wartości.

Uwaga : Pełną dokumentację funkcji astype() można znaleźć tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w Pythonie:

Jak naprawić błąd KeyError w Pandach
Jak naprawić: ValueError: Nie można przekonwertować float NaN na int
Jak naprawić: Błąd wartości: Nie można rozgłaszać argumentów z kształtami

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *