在Python中,我们可以使用来获取数组中值的索引.index()
。
但是,当我尝试执行NumPy数组时:
decoding.index(i)
我得到:
AttributeError:“ numpy.ndarray”对象没有属性“ index”
我如何在NumPy数组上执行此操作?
使用np.where
来获得,其中一个给定的条件是指数True
。
例子:
对于np.ndarray
称为的2D a
:
i, j = np.where(a == value) # when comparing arrays of integers
i, j = np.where(np.isclose(a, value)) # when comparing floating-point arrays
对于一维数组:
i, = np.where(a == value) # integers
i, = np.where(np.isclose(a, value)) # floating-point
请注意,这也适用于像条件>=
,<=
,!=
等等…
您也可以np.ndarray
使用index()
方法创建的子类:
class myarray(np.ndarray):
def __new__(cls, *args, **kwargs):
return np.array(*args, **kwargs).view(myarray)
def index(self, value):
return np.where(self == value)
测试:
a = myarray([1,2,3,4,4,4,5,6,4,4,4])
a.index(4)
#(array([ 3, 4, 5, 8, 9, 10]),)
问题内容: 假设我有一个整数的NumPy数组,如下所示: 我想找到数组的开始和结束索引,其中值的值大于重复的x倍(例如5倍)。因此,在上述情况下,其值为22和6。重复的22的开始索引为3,结束的索引为8。重复6相同。Python中是否有特殊的工具对您有所帮助?否则,我将遍历数组索引以获取索引,并将实际值与前一个进行比较。 问候。 问题答案: 使用@WarrenWeckesser在此处给出的和方法来
问题内容: 有没有办法一次获取NumPy数组中几个元素的索引? 例如 我想找到in中每个元素的索引,即:。 我发现我使用的解决方案有点冗长: 输出: 问题答案: 您可以使用和(或为此): 这对于您的示例数组很好用,但是通常返回的索引数组不遵循中的值顺序。这可能是个问题,具体取决于您下一步要做什么。 在这种情况下,更好的答案是一个@Jaime给出了这里,使用: 返回值在中出现的索引。例如:
问题内容: NumPy具有有效的功能/方法来标识对象中非零元素的索引。什么是最有效的方式来获得该元素的索引 做 具有零值? 问题答案: numpy.where()是我的最爱。
问题内容: 我想做一些类似于此处NumPy数组的操作,更改不在索引列表中的值,但不完全相同。 考虑一个数组: 我知道我可以通过索引列表访问其元素,例如: 但是我还需要访问那些 不在列表中的元素。天真地,这是: 正确的方法是什么? 问题答案: In [170]: a = np.array([0.2, 5.6, 88, 12, 1.3, 6, 8.9]) In [171]: idx=[1,2,5] I
我有一个2D麻木阵列: 如何获取大于的元素的索引? 现在,我正在做以获取每个最大值的索引,结果是:。我如何实现上述操作?
问题内容: 几年前从这个问题开始,在numpy中是否有规范的“移位”功能?我从文档中看不到任何东西。 这是我正在寻找的简单版本: 使用它就像: 这个问题来自于我昨天尝试[编写快速滚动产品的](http://codingdict.com/questions/163825尝试。我需要一种“转移”累积乘积的方法,我所能想到的就是在中复制逻辑。 因此比快得多。此版本的功能执行得更好: 更快的版本只是简单地