У меня есть набор данных (ndarray, float 32), например:
[-3.4028235e+38 -3.4028235e+38 -3.4028235e+38 ... 1.2578617e-01
1.2651859e-01 1.3053264e-01] ...
Я хочу удалить все значения ниже 0, больше 1, поэтому я использую:
with rasterio.open(raster_file) as src:
h = src.read(1)
i = h[0]
i[np.logical_and(i >= 0.0, i <= 1.0)]
Очевидно, что первые записи (т.е. -3.4028235e + 38) должны быть удалены, но они все еще появляются после применения оператора. Мне интересно, связано ли это с научной нотацией, и требуется ли выполнить предварительный шаг, но я не вижу, что именно. А идеи?
Чтобы упростить это, вот код снова:
pp = [-3.4028235e+38, -3.4028235e+38, -3.4028235e+38, 1.2578617e-01, 1.2651859e-01, 1.3053264e-01]
pp[np.logical_and(pp => 0.0, pp <= 1.0)]
print (pp)
И результат
pp = [-3.4028235e+38, -3.4028235e+38, -3.4028235e+38, 0.12578617, 0.12651859, 0.13053264]
Таким образом, первые 3 записи все еще остаются.