如何获得numpy数组的每个元素?

时间:2016-11-22 21:19:05

标签: python numpy anaconda

我有一个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

6 个答案:

答案 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]