Как ведет себя xarray при умножении массивов данных?Python

Программы на Python
Anonymous
Как ведет себя xarray при умножении массивов данных?

Сообщение Anonymous »

Я хотел бы перемножить два массива данных одинакового размера:

Код: Выделить всё

print(data1)

[9331200 values with dtype=int8]
Coordinates:
* lon      (lon) float64 -180.0 -179.9 -179.8 -179.7 ... 179.8 179.9 180.0
* lat      (lat) float64 89.96 89.88 89.79 89.71 ... -89.79 -89.88 -89.96

print(data2)

[9331200 values with dtype=float32]
Coordinates:
* lon      (lon) float64 -180.0 -179.9 -179.8 -179.7 ... 179.8 179.9 180.0
* lat      (lat) float64 89.96 89.88 89.79 89.71 ... -89.79 -89.87 -89.96

Код: Выделить всё

data1 * data2
возвращает эту ошибку:

Код: Выделить всё

ValueError: Cannot apply_along_axis when any iteration dimensions are 0
Обратите внимание, что после этой темы я позаботился о согласованности размеров и переиндексировал оба массива данных.
Поскольку оба массива имеют разные типы данных< /code>, я попробовал data1.astype(np.float64) * data2, но это вернуло ту же ошибку.
С другой стороны, это вернуло пустой массив :

Код: Выделить всё

data3 = data1.astype(np.float64) * data2.astype(np.float64)

print(data3)

array([], shape=(0, 0), dtype=float64)
Coordinates:
* lon      (lon) float64
* lat      (lat) float64
Единственный способ, который я нашел для достижения этого умножения, — это получить базовые данные np:

Код: Выделить всё

data3 = data1.data * data2.data
Хотя это работает для моих нужд, мне все равно любопытно понять, почему чистый метод xarray не работает. Может ли кто-нибудь сообщить мне или указать на часть документации, которую я мог пропустить?


Подробнее здесь: https://stackoverflow.com/questions/764 ... ata-arrays

Вернуться в «Python»