我有一个numpy数组如下:
将存储一些值的键。例如 键[2,3,4,7,8]
如何获取4的索引并将索引存储在int变量中?
例如,索引值4为2,因此2将存储在int变量中。
我尝试使用以下代码段
//enter code here
for i in np.nditer(Keys):
print(keys[i]);
//enter code here
我正在使用python 3.5 Spyder 3.5.2 Anaconda 4.2.0
答案 0 :(得分:1)
keys
是列表还是numpy
数组
keys = [[2,3,4,7,8] # or
keys = np.array([2,3,4,7,8])
您不需要迭代来查看其中任何一个元素。但你可以做到
for i in keys:
print(i)
for i in range(len(keys)):
print(keys[i])
[i for i in keys]
这些工作都可以。
如果您想要值4
的索引,列表中有一个方法:
keys.index(4)
表示数组
np.where(keys==4)
是一段有用的代码。还
np.in1d(keys, 4)
np.where(np.in1d(keys, 4))
忘掉np.nditer
。这是高级编程的原因,而不是常规迭代。
答案 1 :(得分:0)
有几种方法。如果列表不是太大,那么:
where_is_4 = [e for i,e in enumerate(Keys) if i==4][0]
它的作用是使用枚举器在列表上循环,并在每次出现值'4'时创建一个包含枚举值的列表。
答案 2 :(得分:0)
为什么不这样做:
for i in range( len( Key ) ):
if ( Key[ i ] == 4 ):
print( i )
答案 3 :(得分:0)
您可以使用以下命令查找值为4
的所有索引:
>>> keys = np.array([2,3,4,7,8])
>>> np.flatnonzero(keys == 4)
array([2])
答案 4 :(得分:0)
有一种称为where
的本地numpy方法。
它将返回索引数组,其中某些给定条件为真。因此,如果列表不为空,您可以选择第一个条目:
N = 4
indicies = np.where(x==N)[0]
index = None
if indicies:
index = indicies[0]
答案 5 :(得分:0)
使用numpy.where(condition)将是一个不错的选择。从下面的代码中,您可以获得4的位置。
import numpy as np
keys = np.array([2,3,4,7,8])
result = np.where(keys==4)
result[0][0]