Boolean И операторы вернут первое значение 5
, если выражение оценивается как false
, а второе значение 2
, если выражение оценивается как true
. Поскольку 5
и 2
являются действительными, не-ложными и ненулевыми значениями, выражение оценивается как true.
Если вы хотите напечатать обе переменные, вы можете связать их с строкой и напечатать это.
five = 5
two = 2
print five + " and " + two
Или распечатать свою сумму, которую вы могли бы использовать
print five + two
В этом документе объясняется, как использовать логические логические операторы.
Кажется, что sel
, использующий срез времени в сочетании с method='nearest'
, просто не поддерживается:
не может использовать аргумент
blockquote>method
, если любые индексы являются объектами срезаЭто как-то имеет смысл, поскольку выбор
nearest
для фрагмента кажется немного странным.Вы можете обойти это, выполнив
sel
в два шага, то есть сначала выберите временной срез, и с этого временного фрагмента выберите местоположение (или наоборот). Я не уверен, что это лучшее решение, но по крайней мере оно работает.Быстрый пример с некоторыми данными ERA5:
import xarray as xr ds1 = xr.open_dataset('20160502_cabauw_model_fc.nc') # Works: dsloc1 = ds1.sel(time='2016-05-02 10:00', longitude=4.9, latitude=51.2, method='nearest') # Doesn't work: #dsloc2 = ds1.sel(time=slice('2016-05-02 10:00', '2016-05-02 12:00'), longitude=4.9, latitude=51.2, method='nearest') # Works: tmp = ds1.sel(time=slice('2016-05-02 10:00', '2016-05-02 12:00')) dsloc2 = tmp.sel(longitude=4.9, latitude=51.2, method='nearest')
Это приводит к чему-то вроде:
In [23]: dsloc2 Out[23]: <xarray.Dataset> Dimensions: (level: 137, time: 3) Coordinates: longitude float32 4.8 latitude float32 51.3 * level (level) int32 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... * time (time) datetime64[ns] 2016-05-02T10:00:00 2016-05-02T11:00:00 ... Data variables: z (time, level) float32 ...