在python中找到一个numpy数组中元素的位置[重复]
Posted
技术标签:
【中文标题】在python中找到一个numpy数组中元素的位置[重复]【英文标题】:finding the position of an element within a numpy array in python [duplicate] 【发布时间】:2020-05-23 01:45:22 【问题描述】:我想问一个关于在 Python 的 numpy 包中查找数组中元素位置的问题。
我正在使用适用于 Python 3 的 Jupyter Notebook,下面的代码如下所示:
concentration_list = array([172.95, 173.97, 208.95])
我想编写一段代码,它能够返回数组中元素的位置。
为此,我想用172.95
来演示。
最初,我尝试使用.index()
,在括号内传入172.95
,但这不起作用,因为numpy无法识别.index()
方法-
concentration_position = concentration_list.index(172.95)
AttributeError: 'numpy.ndarray' object has no attribute 'index'
当我访问该站点时,Sci.py 文档没有提到任何关于这种方法可用的信息。
是否有任何可用的功能(我可能没有发现)来解决问题?
【问题讨论】:
这能回答你的问题吗? Is there a NumPy function to return the first index of something in an array? 【参考方案1】:您可以通过numpy
库中的where
函数
import numpy as np
concentration_list = np.array([172.95, 173.97, 208.95])
number = 172.95
print(np.where(concentration_list == number)[0])
Output : [0]
【讨论】:
来自numpy.where()
的文档:当仅提供条件时,此函数是 np.asarray(condition).nonzero() 的简写。应该首选直接使用非零值,因为它对子类表现正确。【参考方案2】:
为此目的使用np.where(...)
,例如
import numpy as np
concentration_list = np.array([172.95, 173.97, 208.95])
index=np.ravel(np.asarray(concentration_list==172.95).nonzero())
print(index)
#outputs (array of all indexes matching the condition):
>> [0]
【讨论】:
来自numpy.where()
的文档:当仅提供条件时,此函数是 np.asarray(condition).nonzero() 的简写。应该首选直接使用非零值,因为它对子类表现正确。
调整了!干杯!以上是关于在python中找到一个numpy数组中元素的位置[重复]的主要内容,如果未能解决你的问题,请参考以下文章
python使用numpy中的equal函数比较两个numpy数组中每个位置的元素是否相同并计算相同元素的比例