我如何获得两个数组之间的按行比较,从而得到按行的真/假数组?
给定数据:
a = np.array([[1,0],[2,0],[3,1],[4,2]])
b = np.array([[1,0],[2,0],[4,2]])
结果步骤1:
c = np.array([True, True,False,True])
最终结果:
a = a[c]
那么我如何获得阵列呢c
?
PS:在此示例中,数组a
和b
进行了排序,如果在您的解决方案中数组进行了排序很重要,也请提供信息
这是向量化的解决方案:
res = (a[:, None] == b).all(-1).any(-1)
print(res)
array([ True, True, False, True])
请注意,a[:, None] == b
将的每行a
与按b
元素进行比较。然后,我们使用all
+any
推断True
每个子数组是否有所有行:
print(a[:, None] == b)
[[[ True True]
[False True]
[False False]]
[[False True]
[ True True]
[False False]]
[[False False]
[False False]
[False False]]
[[False False]
[False False]
[ True True]]]
我有一个String类型的数组列表和一个Person类型的数组列表。其中,Person是一个仅包含包含名称的字符串的对象。 假设我这样做, 假设创建一个新的Person对象会将名称设置为“Josh”,并假设Person类具有该名称的get方法。 有没有办法检查名称数组列表中是否包含名为Josh的人。 我唯一能想到的就是这个, 现在,如果Person数组列表和names数组列表包含多个元素,如何检查
假设我有一组数组,包括和,我想检查它们是否相等。一般来说,我可以只使用(除了一些我现在忽略的愚蠢的情况)。 但是,这会计算的整个数组,这通常是不需要的。我的数组非常大,而且我有很多数组,两个数组相等的概率很小,所以很可能,在函数返回False之前,我只需要计算的一小部分,所以这对我来说不是一个最佳解决方案。 我尝试使用内置的函数,并结合: 然而,在两个数组相等的情况下,这似乎要慢得多,总的来说,它
我想比较两个数组,看看它们是否有相同的值。 如果我有一个数组,名为 以及如何将坐标放入“coords”变量(哦,等等,它被称为“ship”,而不是coords。我忘了): //arr.add(new javax.vecmath.vector3f(float.parsefloat(x),float.parsefloat(y),float.parsefloat(z));}谢谢!
编辑:最后一个问题,如何通过值而不是引用来存储它?
问题内容: 我已经看到了一些类似的问题两种不同的类型如何使用接口在golang中实现相同的方法?,但就我而言,我的类型没有相同的基本类型。我的类型是不同大小的数组。 因此,可能不重复两种方法GetByte0()? 问题答案: 例如, 输出: