从2D NumPy数组中查找1D数组?

戳19962008

假设我有

[[array([x1, y1]), z1]
 [array([x2, y1]), z2]
 ......
 [array([xn, yn]), zn]
]

我想找到的索引array([x5, y5])如何使用NumPy有效地查找?

迪卡卡

首先,由于混合的数据格式,我认为您不能以向量化的方式提取数组。因此,您可以用来loop comprehension从每个列表元素中提取与数组相对应的第一个元素作为2D数组。因此,假设A输入列表为:

arr = np.vstack([a[0] for a in A])

然后,只需使用向量化方式进行比较NumPy's broadcasting feature,因为它将沿所有行广播该比较,并使用来查找所有匹配的行np.all(axis=1)最后,使用np.flatnonzero来获取最终索引。因此,这个难题的最终和平将是-

idx = np.flatnonzero((arr == search1D).all(1))

您可以阅读答案,this post以查看其他替代方法来获取此类1D数组中的索引以进行数组搜索2D

样品运行-

In [140]: A
Out[140]: 
[[array([3, 4]), 11],
 [array([2, 1]), 12],
 [array([4, 2]), 16],
 [array([2, 1]), 21]]

In [141]: search1D = [2,1]

In [142]: arr = np.vstack([a[0] for a in A]) # Extract 2D array

In [143]: arr
Out[143]: 
array([[3, 4],
       [2, 1],
       [4, 2],
       [2, 1]])

In [144]: np.flatnonzero((arr == search1D).all(1)) # Finally get indices
Out[144]: array([1, 3])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

Python脚本中的错误“预期的2D数组,取而代之的是1D数组:”?

来自分类Dev

tf.gather_nd从1d索引数组中获取2d数组的值

来自分类Dev

从VBA中的2D数组分配1D数组?

来自分类Dev

C ++ 2D数组到1D数组

来自分类Dev

numpy:将2D数组乘以1D数组

来自分类Dev

在numpy 1d数组中查找拐点和平稳点

来自分类Dev

numpy将2D数组与1D数组连接

来自分类Dev

如何使用numpy从两个1D数组生成布尔2D数组

来自分类Dev

在Numpy Python中将1d数组附加到2d数组

来自分类Dev

Python Numpy在带有2D数组的1D数组上相交1d

来自分类Dev

带有1列的Numpy重塑1d至2d数组

来自分类Dev

使用2D数组中的值索引1D数组

来自分类Dev

numpy查找2D数组中的出现次数

来自分类Dev

从C中的2D数组中产生1D数组

来自分类Dev

Numpy计算随机2D或1D数组中的Min Max

来自分类Dev

如何在1D数组上使用函数创建2D Numpy数组?

来自分类Dev

从JavaScript中的1D数组到2D数组

来自分类Dev

tf.gather_nd从1d索引数组中获取2d数组的值

来自分类Dev

有效的通用代码将Numpy中的2D或1D蒙版数组索引为1D数组

来自分类Dev

如何将numpy中的1D数组视为(1 x n)2D数组?

来自分类Dev

在1d数组中填充2d数组

来自分类Dev

在C ++中的2D数组中声明指向1D数组的指针

来自分类Dev

2个1D数组中的javascript 2D数组

来自分类Dev

用1D numpy数组制作2D

来自分类Dev

numpy查找2D数组中的出现次数

来自分类Dev

numpy:在2d数组中查找边界框

来自分类Dev

我应该如何用numpy将3d数组中的1d数组乘以2d矩阵

来自分类Dev

numpy:将索引的2D数组转换为1D数组以进行交集计算

来自分类Dev

从numpy 1D数组列表创建numpy 2D数组

Related 相关文章

热门标签

归档