python:numpy和np.where。指数

时间:2018-12-18 17:30:30

标签: python arrays list numpy indexing

我有vaadinCompile 'org.vaadin.addon:v-leaflet:2.0.9' compile 'org.vaadin.addon:v-leaflet:2.0.9' ,并以降序对其进行了排序。

所以我现在有list=[12,45,7,15,9]  现在,我必须采用前3个元素,并且必须找到第一个列表的索引为[45,15,12,9,7]。 我使用了(45,15,12),但这是错误消息:

np.where

2 个答案:

答案 0 :(得分:0)

听起来好像您正在尝试做np.where(x,y,z)之类的事情,但最好单独搜索索引。另外,在尝试在列表上使用np.where之前,还可以确保将列表键入为numpy数组。

import numpy as np

alist=[12,45,7,15,9] 
alist=np.array(alist)

anewlist=[45,15,12,9,7]
anewlist=np.array(anewlist)
x=anewlist[0]
y=anewlist[1]
z=anewlist[2]
print(np.where(alist == x))
print(np.where(alist == y))
print(np.where(alist == z))

>>>(array([1], dtype=int64),)
   (array([3], dtype=int64),)
   (array([0], dtype=int64),)

答案 1 :(得分:0)

您尝试执行的另一种解决方案如下:

list = np.array([12,45,7,15,9])
ind = list.argsort()[-3:][::-1]

输出:

  

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

它将为您提供三个元素的内容。