python报错: ‘list’ object has no attribute ‘shape’的解决

  • Post category:Python

当我们在Python中使用numpy库中的数组时,有时会遇到“’list’ object has no attribute ‘shape’”这样的错误。这个错误通常是由于我们将一个列表(list)当作数组(array)来使用,而列表没有shape属性,因此会导致错误。下面是解决这个错误的完整攻略。

解决方法

方法一:将列表转换为数组

我们可以使用numpy库中的array()函数将列表转换为数组,从而解决这个错误。以下是一个示例代码,演示如何将列表转换为数组:

import numpy as np

lst = [1, 2, 3, 4, 5]
arr = np.array(lst)
print(arr.shape)

在上面的示例代码中,我们首先定义了一个包含五个整数的列表lst。然后,我们使用numpy库中的array()函数将lst转换为数组arr,并输出arr的形状(shape)。输出结果为:

(5,)

方法二:使用numpy库中的reshape()函数

我们也可以使用numpy库中的reshape()函数来改变数组的形状,从而解决这个错误。以下是一个示例代码,演示如何使用reshape()函数改变数组的形状:

import numpy as nplst = [1, 2, 3, 4, 5]
arr = np.array(lst)
arr = arr.reshape((, 1))
print(arr.shape)

在上面的示例代码中,我们首先定义了一个包含五个整数的列表lst。然后,我们使用numpy库中的array()函数将lst转换为数组arr,并使用reshape()函数将arr的形状改变为(5, 1)。最后,我们输出arr的形状。输出结果为:

(5, 1)

总结

在Python中,当我们使用numpy库中的数组时,如果遇到“’list’ object has no attribute ‘shape’”这样的错误,我们可以使用numpy库中的array()函数将列表转换为数组,或者使用reshape()函数改变数组的形状。需要根据具体的需求选择合适的解决方法。