获取numpy数组中元素的索引

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取numpy数组中元素的索引相关的知识,希望对你有一定的参考价值。

我将以下列表转换为numpy.array

sells = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 599]
np_sells = np.array(sells)
print(np_sells)

>> 

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

我想知道第一个不同于0的元素的索引,我尝试使用np.nonzero()方法并得到这个:

a = np.nonzero(np_sells)
print(a)

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

我真正需要的是13在另一个日期列表中查找该数字(我正在研究时间序列),但是如果我尝试使用此代码,则会不断出现相同的错误:

dates_list = ['01-07-2014','01-08-2014','01-09-2014','01-10-2014','01-11-2014','01-12-2014','01-01-2015','01-02-2015','01-03-2015','01-04-2015','01-05-2015','01-06-2015','01-07-2015','01-08-2015','01-09-2015','01-10-2015','01-11-2015','01-12-2015','01-01-2016','01-02-2016','01-03-2016','01-04-2016','01-05-2016','01-06-2016','01-07-2016']

dates_list[a]

>>> TypeError: list indices must be integers or slices, not tuple

我知道它必须真的很简单,但是我被卡住了。

答案

因为a是一个元组。您不能将其作为索引传递。因此,我们可以尝试一下(很抱歉,您的问题对我不清楚,所以您可能不清楚):

another_array = a[0]
idx = another_array[#Enter the index you want here]
print(dates_list[idx])

以上是关于获取numpy数组中元素的索引的主要内容,如果未能解决你的问题,请参考以下文章

获取numpy数组中元素的索引

NumPy 数组切片索引

乐哥学AI_Python:Numpy索引,切片,常用函数

NumPy数组中元素的索引[重复]

在 NumPy 数组中查找等于零的元素的索引

numpy数组列表中N个最高元素的索引[重复]