如何修复:类型错误:无法使用灵活类型减少


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

 ValueError : cannot perform reduce with flexible type

当您尝试在 Python 中对非数字对象执行计算时,会出现此错误。

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

如何重现错误

假设我们有以下 NumPy 数组:

 import numpy as np

#define NumPy array of values
data = np. array (['1', '2', '3', '4', '7', '9', '10', '12'])

#attempt to calculate median of values
n.p. median (data)

TypeError : cannot perform reduce with flexible type

我们收到一个类型错误,因为我们试图计算字符串值列表的中位数。

如何修复错误

修复此错误的最简单方法是将 NumPy 数组转换为浮点对象,以便我们可以对其执行数学运算。

以下代码展示了如何执行此操作:

 #convert NumPy array of string values to float values
data_new = data. astype (float)

#view updated NumPy array
data_new

array([ 1., 2., 3., 4., 7., 9., 10., 12.])

#check data type of array
data_new. dtype

dtype('float64')

我们现在可以对 NumPy 数组执行数学运算:

 #calculate median value of array
n.p. median (data_new)

5.5

#calculate mean value of array
n.p. mean (data_new)

6.0

#calculate max value of array
n.p. max (data_new)

12.0

请注意,我们不会收到任何错误,因为 NumPy 数组是浮点对象,这意味着我们可以对其执行数学运算。

其他资源

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

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

添加评论

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