如何修复:valueerror:使用序列设置数组元素


使用Python时可能会遇到的错误是:

 ValueError : setting an array element with a sequence.

当尝试将多个数字分组到 NumPy 数组中的单个位置时,通常会发生此错误。

以下示例展示了如何在实践中纠正此错误。

如何重现错误

假设我们有以下 NumPy 数组:

 import numpy as np

#create NumPy array
data = np. array ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

现在假设我们尝试将两个数字放入数组的第一个位置:

 #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.

该错误准确地告诉我们做错了什么:我们尝试使用值序列定义 NumPy 数组的元素。

特别是,我们尝试将值“4”和“5”放置在 NumPy 数组的第一个位置。

这是不可能的,因此我们收到错误。

如何修复错误

修复此错误的方法是简单地将一个值分配给数组的第一个位置:

 #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])

请注意,我们没有收到任何错误。

如果我们实际上想给数组元素赋两个新值,我们需要使用以下语法:

 #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])

请注意,表中的前两个值已更改,而所有其他值保持不变。

其他资源

以下教程解释了如何修复 Python 中的其他常见错误:

如何修复 Pandas 中的 KeyError
如何修复:ValueError:无法将 float NaN 转换为 int
如何修复:ValueError:操作数无法与形状一起广播

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注