Для проекта в области метеорологии я комбинирую функциональность xarray DataArrays с Numpy Arrays.В большинстве случаев это хорошо, но в одном случае все идет не так.Это происходит, когда я хотел бы умножить массив данных xarray, содержащий только одну переменную, на вектор массива Numpy.
foo = np.array([100, 200, 300]) # Create Numpy vector
bar = np.array(3) # Create Numpy array with only one number
bar = xr.DataArray(bar) # Convert Numpy array to Xarray DataArray
foo*bar # Multiply the Numpy array with the 0-D Xarray DataArray. This results
# in an error
Я ожидал бы, что умножение приведет к xarray DataArray
с [300, 600, 900]
в качестве результата, но вместо этого возбуждается ValueError.Мой вопрос: почему это умножение приводит к ошибке?
Вот обратная связь:
File "C:\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 101, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "D:\test\test.py", line 16, in <module>
bar*foo
File "C:\Anaconda3\lib\site-packages\xarray\core\dataarray.py", line 1972, in func
if not reflexive
File "C:\Anaconda3\lib\site-packages\xarray\core\variable.py", line 1676, in func
result = Variable(dims, new_data, attrs=attrs)
File "C:\Anaconda3\lib\site-packages\xarray\core\variable.py", line 260, in __init__
self._dims = self._parse_dimensions(dims)
File "C:\Anaconda3\lib\site-packages\xarray\core\variable.py", line 424, in _parse_dimensions
% (dims, self.ndim))
ValueError: dimensions () must have the same length as the number of data dimensions, ndim=1```