当前位置: 首页 > 面试题库 >

从多维numpy数组中查找和删除

勾通
2023-03-14
问题内容

我有两个numpy数组:

p_a_colors=np.array([[0,0,0],
                     [0,2,0],
                     [119,103,82],
                     [122,122,122],
                     [122,122,122],
                     [3,2,4]])

p_rem = np.array([[119,103,82],
                     [122,122,122]])

我想从p_rem中的p_a_colors中删除所有列,所以我得到:

p_r_colors=np.array([[0,0,0],
                    [0,2,0],
                    [3,2,4]])

我认为,某些事情应该像

p_r_colors= np.delete(p_a_colors, np.where(np.all(p_a_colors==p_rem, axis=0)),0)

但我只是不知道轴或[:]正确。

我知道

p_r_colors=copy.deepcopy(p_a_colors)
for i in range(len(p_rem)):
    p_r_colors= np.delete(p_r_colors, np.where(np.all(p_r_colors==p_rem[i], axis=-1)),0)

可以,但是我试图避免(python)循环,因为我也想要正确的性能。


问题答案:

这就是我要做的:

dtype = np.dtype((np.void, (p_a_colors.shape[1] * 
                            p_a_colors.dtype.itemsize)))
mask = np.in1d(p_a_colors.view(dtype), p_rem.view(dtype))
p_r_colors = p_a_colors[~mask]

>>> p_r_colors
array([[0, 0, 0],
       [0, 2, 0],
       [3, 2, 4]])

您需要执行void dtype事情,以便numpy整体比较行。之后,使用内置的set例程似乎是显而易见的方法。



 类似资料:
  • 我对随机性有一个问题。我有示例数组。 我想选择随机键从数组到其他指定大小的数组。在第二个数组中,我需要其他组的值。 多谢帮忙!

  • 问题内容: 对于从PHP数组中删除空元素这一古老的问题,我似乎找不到一个简单而直接的解决方案。 我的输入数组可能如下所示: (依此类推,如果有更多数据,尽管可能没有…) 如果看起来像上面的一样,我希望在处理 完 之后将其 完全清空 。 因此将输出: 如果我运行,我仍然会得到 相同的 输出。不过,我到过的所有地方都表明这是在PHP5中删除空数组元素的最简单方法。 我也尝试过,但是出现以下错误: 警告

  • 问题内容: 我想获取与行匹配的二维Numpy数组的索引。例如,我的数组是这样的: 我想获取与行[0,1]相匹配的索引,该行是索引3和15。当我执行类似的操作时,… 我想要索引数组([3,15])。 问题答案: 您需要使用函数来获取索引: 或者,如文档所述: 如果仅给出条件,则返回 您可以直接调用返回的数组: 分解: 并在该数组上调用方法(使用)可为您提供两个均为True的位置: 并获取哪些索引是:

  • 问题内容: numpy中最简单的方法来反转数组的最内部值是这样的: 这样我得到以下结果: 非常感谢你! 问题答案: 怎么样: 而最后一个维度的反方向是: 要么 尽管我更喜欢后者,因为前两个维度是隐式的,因此很难看到正在发生的事情。

  • 问题内容: 我们可以在php中从单个多维数组中删除重复项,是否可以与多维数组一起使用?它对我不起作用! 这是数组的样子 任何人都可以帮助我… 问题答案: 用户在array_unique页面上的评论确实对此有所启发。您很可能会在这些注释中找到一些隐藏的宝石- 这是非常方便的文档。 只需快速浏览器,便可以了解以下内容,以从多维数组中删除重复项:

  • 问题内容: 我有一个类似于下面的多维数组。我试图实现的是一种从数组中查找和获取“ Total”值最高的数组的方法,现在我知道有一个称为的函数,但不适用于像这样的多维数组。 我想做的是创建一个foreach循环并仅使用总数构建一个新数组,然后使用它来找到最大值,这将起作用,唯一的问题是检索与此相关的其余数据最大值。我不确定这也是最有效的方法。 有任何想法吗? 问题答案: 从PHP 5.5开始,您可以