当前位置: 首页 > 知识库问答 >
问题:

Numpy比较一个数组中的所有向量行与同一数组中的其他行

宰父霖
2023-03-14

我有一个Numpy数组如下:

a= array([[2, 3],
   [0, 2]])

并希望使用np.greater将每行中的“向量”与其他行进行比较,以便:

array([[False, False],  <--- [2,3] compared with [2,3]
     [True, True]],     <--- [2,3] compared with [0,2]
     [[False, False],   <--- [0,2] compared with [2,3] 
     [False, False]])   <--- [0,2] compared with [0,2]

但是如果我尝试r=(np.greater.outer(a,a))它会将a中的每个数字与a中的每个其他数字进行比较,因此:

array([[[[False, False],  <--- 2 compared with a
     [ True, False]],     

    [[ True, False],      <--- 3 compared with a
     [ True,  True]]],


   [[[False, False],      <--- 0 compared with a
     [False, False]],

    [[False, False],      <--- 2 compared with a 
     [ True, False]]]], dtype=bool)

如何使外部比较行明智而不是元素明智?

共有1个答案

樊杰
2023-03-14

试试这个:

a[:,np.newaxis] > a

这与更明确的代码相同:

a[:,np.newaxis,:] > a[np.newaxis,:,:]

帽尖https://stackoverflow.com/a/16500609/4323

详细介绍它的功能:Python numpy的使用。新轴

 类似资料:
  • 问题内容: 有人遇到过这个问题吗?假设您有两个类似以下的数组 有没有一种方法可以比较b中a中的哪些元素?例如, 我正在尝试避免循环,因为要花费数百万个元素才能解决问题。有任何想法吗? 干杯 问题答案: 实际上,有一个比以下任何一种方法更简单的解决方案: 所得的c为:

  • 问题内容: 我试图通过python摸索,并学习做事的最佳方法。我有一个字符串要与另一个字符串进行比较,看是否有匹配项: 如果’d’是一个数组,那么查看pay [j]中包含的字符串是否与’d’中的任何值匹配的最有效方法是什么? 问题答案: 如果您只想知道中是否包含的 任何 项,就像您直白地说: 如果您还想知道中包含 哪些 项目: 会如果没有的项目一个空的列表中包含的。 如果您想要的是另一种选择,那么

  • 我想将一个阵列与另一个阵列进行比较: 我想检测数组2是否包含数组1中没有的名称。 数组2可以比数组1长或短,换句话说,数组2可能缺少名称或名称比数组1多,但数组2不能具有与数组1不同的名称。 到目前为止,我可以检测出数组2是否比数组1长。如果是,它显然是在添加名称,因此是无效的: 但是如果这不够精确(如果两个数组有相同数量的值,即使单个值不相关,它也返回true)。 请参见以下示例场景: 我假设我

  • 问题内容: 我试图将数组的成员设置为小于nan的阈值。这是QA / QC过程的一部分,传入数据可能已经具有nan插槽。 例如,我的阈值可能是-1000,因此我想在以下数组中将-3000设置为nan 以下内容: 产生正确的行为,但也会产生RuntimeWarning,但会产生禁用警告的开销 有点沉重,可能有点不安全。 尝试使用花式索引进行两次索引如下所示不会产生任何效果: 我认为这是因为复制是由于整

  • 在我的JavaScript小程序中,我必须检查a和b输入值:如果它们是新的一对,则这一对将作为1D向量添加到小程序的历史记录中。 因此,我制作了一个历史2D数组,其中存储了所有新的对。程序循环数组,将新对与历史数组的每一行进行比较。然而,我有一个问题:当比较的结果应该是真的(即,当I==1时),我得到了一个假结果。 我读了这一页:https://www.w3schools.com/js/js_ar