gpt4 book ai didi

python - 在 numpy 对象数组中搜索

转载 作者:太空宇宙 更新时间:2023-11-04 06:01:48 26 4
gpt4 key购买 nike

我有一个 <type 'numpy.ndarray'> 类型的 Numpy 对象数组 ,

>>> xt4
array([['D', 'F'], ['B', 'C', 'E']], dtype=object)

但是当我使用 numpy.where 在数组中搜索特定值时,尽管它存在,但它什么也没有返回。

>>> numpy.where(xt4=='D')
(array([], dtype=int32),)

相反,我期待相应的 [row]/[col]数组中该值的索引。这适用于 int但是当我在对象数组中搜索字符串时失败了。

编辑 1

  1. 我无法控制对象数组,它不太可能是正方形。
  2. 我需要 [row]/[col] nd.array 中存在的值的索引.

最佳答案

您拥有的是对象的一维数组,此命令中的 == 运算符将简单地尝试将对象与对象进行匹配。最简单的查看方式如下:

>>> xt4=='D'
array([False, False], dtype=bool)

Numpy 尝试将 D['D', 'F']['B', 'C', 'E']。你可以有一个像这样的 char 数组:

>>> arr = np.array([['D', 'F', 'G'], ['B', 'C', 'E']])
>>> arr
array([['D', 'F', 'G'],
['B', 'C', 'E']],
dtype='|S1')

任何类型的 bool 索引都可以正常工作:

>>> arr=='D'
array([[ True, False, False],
[False, False, False]], dtype=bool)
>>> np.where(arr=='D')
(array([0]), array([0]))

关于python - 在 numpy 对象数组中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24492600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com