ValueError: 使用序列設定陣列元素
NumPy 陣列是結構化資料類型,因此,它們對它們包含的元素。在處理多維數組或異質類型的數組時,您可能會遇到以下錯誤:
ValueError: setting an array element with a sequence.
讓我們探討一下導致此錯誤的可能原因以及解決方法:
鋸齒狀數組建立:
鋸齒狀數組是一個多維數組,其中行的長度不同。 NumPy 不支援鋸齒狀數組。要解決此問題,您需要確保用於建立陣列的清單每行具有相同數量的元素:
# Correct numpy.array([[1, 2], [3, 4]])
# Incorrect numpy.array([[1, 2], [2, 3, 4]])
不相容的元素類型:
從不同類型的元素清單建立陣列時,您可能需要明確指定資料類型。預設情況下,NumPy 分配可以容納所有元素的最通用的資料類型。但是,如果您嘗試插入不相容類型的元素,則會遇到此錯誤。
例如,以下程式碼將導致錯誤,因為第二個元素是字串:
numpy.array([1.2, "abc"], dtype=float)
要解決此問題,您可以將所有元素轉換為相同的資料類型或使用物件資料類型,該類型允許任意類型的元素:
# Convert to float numpy.array([float(x) for x in [1.2, "abc"]]) # Use object data type numpy.array([1.2, "abc"], dtype=object)
以上是為什麼我在 NumPy 中收到'ValueError:使用序列設定數組元素”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!