从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条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

用1D numpy数组制作2D

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类常见问题

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

Related 相关文章

热门标签

归档