Обобщение списка данных xarray

#python #list #sum #python-xarray

#питон #Список #сумма #python-xarray

Вопрос:

У меня есть список нескольких массивов данных с одинаковыми размерами по имени и размеру, я хочу суммировать все массивы данных и создать один массив данных с одинаковыми размерами массивов данных, как это лучше всего сделать?

 [lt;xarray.DataArray (latitude: 501, longitude: 894)gt;  array(..., dtype=float32)  Coordinates:  * longitude (longitude) float64 49.8 49.81 49.81 49.82 ... 56.98 56.99 57.0  * latitude (latitude) float64 27.0 27.01 27.02 27.03 ... 31.98 31.99 32.0  year int64 2000, ....... .......  lt;xarray.DataArray (latitude: 501, longitude: 894)gt;  array(..., dtype=float32)  Coordinates:  * longitude (longitude) float64 49.8 49.81 49.81 49.82 ... 56.98 56.99 57.0  * latitude (latitude) float64 27.0 27.01 27.02 27.03 ... 31.98 31.99 32.0  year int64 2020]  

Комментарии:

1. Под «суммой» вы подразумеваете, что хотите добавить массивы по элементам или вы хотите вычислить сумму всех элементов в массиве? И то и другое тривиально. Вы вычисляете сумму с помощью .sum() (в этом нет ничего удивительного), и вы можете вычислить массив с суммой по элементам для a и b с a b помощью . Как кто-то может прийти к ТАКОМУ и задать подобный вопрос, не попытавшись .sum() и сначала не сойдя с ума. Надеюсь, я неправильно понял вопрос.

2. @Grismar, я отредактировал свой вопрос. Я хочу добавить массивы по элементам и создать новый массив данных с теми же размерами массивов данных.

3. Итак, ты пробовал result = xrs[0]; for xr in xrs[1:]: result = xr ? Если это не то, что вам нужно, можете ли вы описать реальную проблему? (кстати, это всего лишь один из способов перебрать список и сложить его элементы, если это то, что вам нужно, вопрос xarray на самом деле совсем не в этом, а в том, «как мне суммировать список на Python».

Ответ №1:

Поскольку вы можете добавить два xarray a и b по элементам с помощью простого a b , и вы говорите, что у вас есть список xarray с одинаковыми размерами (назовем это xrs так), то вот как вы бы добавили их все:

 result = xrs[0] for xr in xrs[1:]:  result  = xr  

Кстати, это совсем не относится к конкретному xarray вопросу. Если у вас есть список целых xs чисел, и вы хотите добавить их все:

 result = xrs[0] for xr in xrs[1:]:  result  = xr  

И до тех пор, пока операторы сложения будут определены надлежащим образом, sum(xs) они будут работать так же хорошо. И это делает для xarray :

 result = sum(xrs)