我有一个二维阵列从光栅图像。光栅图像没有分配给-3.4028231e+38的数据值,我试图将此值替换为“nan”,但在对其应用条件运算符时找不到该值。在
我的数据如下:
>>> slice22 = inndvi[0:2,0:2]
>>> slice22
array([[ -3.40282306e+38, -3.40282306e+38],
[ -3.40282306e+38, -3.40282306e+38]], dtype=float32)
当我试图在if语句中检查这些值时:
^{pr2}$输出为“否”
因此,我无法将3.40282306e+38分配给努比·楠具体如下:
slice22[slice22 == 3.40282306e+38] = numpy.nan
还有一件事我想说的是,我的数据集在光栅中的范围是从+2到-2。 我试着用这个范围来消除3.40282306e+38的值,但还是有错误。在
>>> slice22 [slice22 < 2 and slice22 >2 ]= np.nan
Runtime error
Traceback (most recent call last):
File "<string>", line 1, in <module>
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
它必须等于-3.40282306e+38才能使算法工作吗? 如果不是,试着用一个不等式代替相等。equality适用于浮点数,如果它们是完美整数,比如0,对于像你这样使用不等式的数字来说,也许就是答案。不会像
考虑到您知道您的实际值在-2和2之间,您可以很容易地过滤掉超出此范围的任何内容。在
相关问题 更多 >
编程相关推荐