问题
我有两个大的lat-lon数组,在我通过差值计算循环之后看起来具有完全相同的值,即使它们不应该。为了确定两个数组之间是否存在任何不相等的条目,我使用了const object = Immutable.fromJS({...});
Immutable.setIn(...)
语句。然而,回报似乎没有给我我要求的东西。也就是说,它为我提供值相等的条目,与我要求的完全相反。
代码
首先,我创建了一个小例子,看看函数是如何工作的......
np.where()
输出:
test1 = np.array([[1,2,3,4,5],[2,4,6,8,10]])
test2 = np.array([[1,2,3,4,6],[1,4,6,8,9]])
print np.where(test1 != test2)
好的,这是有道理的。 (array([0, 1, 1]), array([4, 0, 4]))
,[0,4]
和[1,0]
的条目都具有不匹配的值。然后我在我的阵列上尝试了相同的命令,这两个命令的大小都是[1,4]
。
[120,192,288,40]
输出:
print np.where(array1 != array2)
这是很多条目。我检查了几个条目,只是第一个和最后一个,看看不匹配的值是什么。
(array([ 0, 0, 0, ..., 119, 119, 119]), array([ 0, 0, 0, ..., 191, 191, 191]), array([ 0, 2, 2, ..., 287, 287, 287]), array([ 6, 0, 1, ..., 37, 38, 39]))
输出:
print array1[0,0,0,6], array2[0,0,0,6]
print array1[119,191,287,39], array2[119,191,287,39]
条目-0.0712321083736 -0.0712321083736
0.0709354614045 0.0709354614045
让我包含两个数组的相等值,即使我要求输入值不相等的条目。我甚至检查了np.where()
的回复中没有包含的条目,看看它是否有点混乱。
np.where
输出:
print array1[0,0,0,5], array1[0,0,0,5]
仍然平等。 0.0185121137892 0.0185121137892
不仅向我提供值相等的条目;它只给了我一些条目而忽略了其他条目。
问题
为什么np.where
适用于测试,但它似乎不适用于实际数据?这是numpy或我的数据的问题吗?