如何修复:“numpy.ndarray”对象没有属性“index”

原文:https://www . geesforgeks . org/how-fix-numpy-ndarray-object-has-no-attribute-index/

“Numpy . ndarray”对象没有属性“index”是一个属性错误表示Numpy 数组中没有索引方法属性可用。

当我们尝试使用 index 方法在 Numpy 数组中查找特定元素的索引时,会出现此错误。下面代码是一个示例,当“numpy.ndarray”对象没有属性时,会引发“index”错误

:

Python 3

# import necessary packages
import numpy as np

# Create a Numpy array
numbers = np.array([0, 1, 2, 9, 8, 0])

# finding the index value of 9 in 
# numbers array
numbers.index(9)

输出

由于 Numpy 中没有名为 index 的方法,因此会引发属性错误。

解决办法

要修复此错误不要使用索引方法来查找元素的索引使用 where 方法,其中返回数组,该数组由指定元素的索引组成。

语法

numpy . where(Arrayname = = value _ to _ find _ index)

例 1:

指定 Numpy 数组中存在的 where 方法中的元素

Python 3

# import necessary packages
import numpy as np

# Create a Numpy array
numbers = np.array([0, 1, 2, 9, 8, 0])

# finding the index value of 9 in 
# numbers array
np.where(numbers == 9)

输出

(array([3], dtype=int64),)

由于数组中的索引从 0 开始,因此在数字数组中 0 索引值 01 st 索引具有值 12 索引具有值 23 索引具有值

例 2:

在 where 方法中指定一个元素,以便我们指定的元素在数组中出现多次。

Python 3

# import necessary packages
import numpy as np

# Create a Numpy array
numbers = np.array([0, 1, 2, 9, 8, 0])

# finding the index values of 0 in
# numbers array
np.where(numbers == 0)

输出:

(array([0, 5], dtype=int64),)

由于元素 0 在数字数组中出现 2 次在 0 T8】5索引处,因此它返回一个由元素 0 的 2 个索引值组成的数组。

例 3:

将实际上不在数组中的元素传递给 where 方法。

Python 3

# import necessary packages
import numpy as np

# Create a Numpy array
numbers = np.array([0, 1, 2, 9, 8, 0])

# finding the index value of a number 
# which is not in numbers array
np.where(numbers == 7)

输出

(array([], dtype=int64),)

如果我们将一个元素传递给不在数组中的 where 方法,那么它将返回一个空数组,因为在数组的任何索引处都没有指定的元素。这里 7 在数字数组中不存在,所以它返回了一个空数组。****