获取numpy数组中元素的索引

时间:2020-01-02 19:22:22

标签: python 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

我知道它一定很简单,但是我被卡住了。

1 个答案:

答案 0 :(得分:3)

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

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