我想检查numpy数组/矩阵的列中的所有值是否相同。我试图用reduce
的的ufunc
equal
,但它似乎不是在所有情况下工作时:
In [55]: a = np.array([[1,1,0],[1,-1,0],[1,0,0],[1,1,0]])
In [56]: a
Out[56]:
array([[ 1, 1, 0],
[ 1, -1, 0],
[ 1, 0, 0],
[ 1, 1, 0]])
In [57]: np.equal.reduce(a)
Out[57]: array([ True, False, True], dtype=bool)
In [58]: a = np.array([[1,1,0],[1,0,0],[1,0,0],[1,1,0]])
In [59]: a
Out[59]:
array([[1, 1, 0],
[1, 0, 0],
[1, 0, 0],
[1, 1, 0]])
In [60]: np.equal.reduce(a)
Out[60]: array([ True, True, True], dtype=bool)
为什么在第二种情况下中间的列也求和True
,而应该是False
?
谢谢你的帮助!
In [45]: a
Out[45]:
array([[1, 1, 0],
[1, 0, 0],
[1, 0, 0],
[1, 1, 0]])
将每个值与第一行中的相应值进行比较:
In [46]: a == a[0,:]
Out[46]:
array([[ True, True, True],
[ True, False, True],
[ True, False, True],
[ True, True, True]], dtype=bool)
如果该列中的所有值均为True,则该列共享一个公共值:
In [47]: np.all(a == a[0,:], axis = 0)
Out[47]: array([ True, False, True], dtype=bool)
np.equal.reduce
可以通过微观分析将其应用于以下情况时可以看到的问题[1, 0, 0, 1]
:
In [49]: np.equal.reduce([1, 0, 0, 1])
Out[50]: True
前两项,1
并0
经过相等性测试,结果为False
:
In [51]: np.equal.reduce([False, 0, 1])
Out[51]: True
现在False
,0
经过测试是否相等,结果为True
:
In [52]: np.equal.reduce([True, 1])
Out[52]: True
但是True
和相等,因此总结果为True
,这不是期望的结果。
问题是,reduce
我们希望像那样进行“全局”测试时,试图“本地”累积结果np.all
。
假设我有一组数组,包括和,我想检查它们是否相等。一般来说,我可以只使用(除了一些我现在忽略的愚蠢的情况)。 但是,这会计算的整个数组,这通常是不需要的。我的数组非常大,而且我有很多数组,两个数组相等的概率很小,所以很可能,在函数返回False之前,我只需要计算的一小部分,所以这对我来说不是一个最佳解决方案。 我尝试使用内置的函数,并结合: 然而,在两个数组相等的情况下,这似乎要慢得多,总的来说,它
我使用if-else检查numpy矩阵的索引i,i处的元素是否为0 得到了错误值错误:数组的真值有多个元素是含糊不清的。使用a.any()或a.all()对此有任何解决办法吗?
我有一个带有shape的numpy数组,第二个数组也带有shape。我不知道如何检查它们是否相同?示例: 1.第一: 第二: 回应:真实 2. 第一: 第二: 答复:错
我有一个矩阵,我想和另外两个矩阵进行比较,看看我矩阵中的每个条目是包含在另外两个矩阵的值之内还是之外。例如,如果我的矩阵是: 另外两个矩阵是L和U: 和 我想取M的每个条目,比较一下它是否包含在L和U对应条目的范围内。 例如,对于M[1,1],它在-0.49416022和-0.84996737的范围之外,所以我将给这个比较赋值0。另一方面,对于M[2,3],值是-0.5240536,因此在1.14
问题内容: 我需要以下功能: 输入: 输出: 如果输入列表中的所有元素使用标准相等运算符求值彼此相等; 除此以外。 性能:当然,我不希望产生任何不必要的开销。 我觉得最好: 遍历列表 比较相邻元素 和AND所有结果布尔值 但我不确定最Pythonic的方法是什么。 问题答案: 通用方法: 单线: 也是单线的: 这三个版本之间的区别在于: 在内容中必须是可哈希的。 并且可以使用任何迭代器,但chec
我在为Android平台做一个简单的游戏。我有25个对象由我称之为Circle的类制成。每个Circle对象都有一个字段,该字段包含一个int数字,表示 null