如何修复:ValueError: setting an array element with a sequence
在这篇文章中,我们将讨论如何修复ValueError:使用Python设置数组元素的序列。
当我们使用Numpy库时,基本上会遇到的错误是ValueError:用一个序列设置数组元素。我们基本上在创建数组或处理numpy.array时遇到这个错误。
这个错误是由于numpy.array用给定的值创建数组,但值的数据类型与提供给numpy的数据类型不一致。
防止此错误需要采取的步骤:
- 解决这个问题的最简单方法是使用支持所有类型的数据类型的数据类型。
- 解决这个问题的第二个方法是匹配数组的默认数据类型并赋值。
方法1:使用通用数据类型
示例:显示错误代码的程序。
# In this program we are demonstrating how different
# Data-type can cause value error
import numpy
# Creating multi-dimension array
array1 = [1, 2, 4, [5, [6, 7]]]
# Data type of array element
Data_type = int
# This cause Value error
np_array = numpy.array(array1, dtype=Data_type)
print(np_array)
输出:
File “C:\Users\computers\Downloads\he.py”, line 13, in <module>
np_array = numpy.array(array1,dtype=Data_type);
ValueError: setting an array element with a sequence.
如果我们为数组元素提供支持所有数据类型的数据类型,就可以解决这个错误。
语法:
numpy.array( Array ,dtype = _**Common_DataType**_ );
例子:解决问题的代码
# In this program we fix problem by different data-type
import numpy
# Creating multi-dimension array
array1 = [1, 2, 4, [5, [6, 7]]]
# Object Data type is accept all data-type
Data_type = object
# Now we fix the error
np_array = numpy.array(array1, dtype=Data_type)
print(np_array)
输出:
[1 2 4 list([5, [6, 7]])]
方法2:通过匹配值和数组的默认数据类型。
例子:显示错误的程序
# In this program we are demonstrating how mismatch
# of data-type can cause value error
import numpy
# Creating array
array1 = ["Geeks", "For"]
# Default Data type of Array
Data_type = str
np_array = numpy.array(array1, dtype=Data_type)
# This cause error
np_array[1] = ["for", "Geeks"]
print(np_array)
输出:
File “C:\Users\computers\Downloads\he.py”, line 15, in
np_array[1] = [“for”,”Geeks”];
ValueError: setting an array element with a sequence
我们可以通过匹配值和数组的数据类型,然后将其作为数组的元素来解决这个错误。
语法:
if np_array.dtype == type( **Variable** ):
expression;
例子:解决问题的代码
# In this program we fix error by mismatch
# of data-type
import numpy
# Creating array
array1 = ["Geeks", "For"]
# Default Data type of Array
Data_type = str
np_array = numpy.array(array1, dtype=Data_type)
Variable = ["for", "Geeks"]
# First we match the data-type
if np_array.dtype == type(Variable):
np_array[1] = Variable
else:
print("Variable value is not the type of numpy array")
print(np_array)
输出:
Variable value is not the type of numpy array
['Geeks' 'For']