为什么np.where()不在这里工作?

时间:2017-02-01 21:01:32

标签: python arrays numpy where inequality

问题

我有两个大的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或我的数据的问题吗?

0 个答案:

没有答案