我想比较大小相等的numpy数组。具体来说,我有
>>> import numpy as np
>>> A = np.array([0.5, 2., 0.1, 12.])
>>> B = np.ones(len(A))
>>> A<B
array([ True, False, True, False], dtype=bool)
>>> C = np.array([0.5, 2., 0.1, 12., 0.8])
>>> D = np.ones(len(C))
>>> C<D
array([ True, False, True, False, False], dtype=bool)
最后一个元素是False,尽管0.8小于1.0。这似乎发生在不均匀的阵列长度上。 我在这里错过了什么吗?
我使用Python 2.7.6和NumPy 1.8.0。
但是,它适用于NumPy 1.8.2。
答案 0 :(得分:1)
我认为你在测试中混淆了一些东西。在交互式会话中工作时,这始终是一种危险。为了复制东西,你应该总是使用一个独立的最小工作示例。我想你不能提供给我们。
总结一下,对于“不均匀”长度的失败是有点苛刻的,只需要一个简单的测试:-)。此外,正如DSM所指出的,在您的第一个片段中,输出不适合输入(长度方式)。你不应该复制/粘贴不相关的输入和输出,只是为了使它看起来像是相关的,即使你认为它是相关的。让电脑告诉你。
对我来说,事情按预期工作:
>>> A = np.array([0.5, 2., 0.1, 12., 0.8])
>>> B = np.ones(len(A))
>>> A<B
array([ True, False, True, False, True], dtype=bool)