У меня эта проблема уже несколько часов, не могу решить ее. У меня есть массив данных xarray со значениями nan (numpy .float32), положительными и отрицательными значениями (numpy .float32). Теперь я хочу превратить отрицательные значения в 0 - ТОЛЬКО ЭТО. Но даже такую, казалось бы, простую задачу мне решить невозможно. Например, это то, с чем я работал. (xarray.core.dataarray.DataArray) type.
Предыдущий код:
path = r'D:\....'
dObj = xr.open_dataset(path)
JJA = dObj ['cba'].sel(time=dObj.time.values)
Объект тогда выглядит следующим образом: (Мне очень жаль, что я не могу предоставить. n c файл, поскольку он составляет 200 МБ, и я понятия не имею, как его соответственно нарезать)
JJA
Мое решение было:
JJA = JJA.where(JJA>0,0)
Но каким-то образом это превращает отрицательные значения AND nan в 0, не знаю почему. Затем я пробовал разные подходы и немного усложнил условное выражение.
JJA = JJA.where((np.isnan(JJA)==False)&(JJA > 0),0)
Но ничего, он все равно превращается в:
JJA