Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 展开尺寸X阵列_Python_Numpy_Multidimensional Array_Dimension_Python Xarray - Fatal编程技术网

Python 展开尺寸X阵列

Python 展开尺寸X阵列,python,numpy,multidimensional-array,dimension,python-xarray,Python,Numpy,Multidimensional Array,Dimension,Python Xarray,是否有现有的方法或途径来扩展xarray.DataArray对象的维度(和坐标) 我想获得类似的东西,同时为新扩展的数据数组定义一个新的维度和坐标变量 使用DataArray.assign_coords()我可以创建一个新的坐标变量,但数组本身并没有用新的轴展开。我同意某种方法会很有用。它目前并不直接存在于xarray中,但我鼓励您提交一份文件,讨论新特性的API和/或提出实现它的请求 新功能包含一些相关功能,可以满足此目的: import xarray as xr import numpy a

是否有现有的方法或途径来扩展
xarray.DataArray
对象的维度(和坐标)

我想获得类似的东西,同时为新扩展的
数据数组定义一个新的维度和坐标变量


使用
DataArray.assign_coords()
我可以创建一个新的坐标变量,但数组本身并没有用新的轴展开。

我同意某种方法会很有用。它目前并不直接存在于xarray中,但我鼓励您提交一份文件,讨论新特性的API和/或提出实现它的请求

新功能包含一些相关功能,可以满足此目的:

import xarray as xr
import numpy as np
data = xr.DataArray([1, 2, 3], dims='x')
other = xr.DataArray(np.zeros(4), coords=[('y', list('abcd'))])
data2, other2 = xr.broadcast(data, other)
print(data2)
# <xarray.DataArray (x: 3, y: 4)>
# array([[1, 1, 1, 1],
#       [2, 2, 2, 2],
#       [3, 3, 3, 3]])
# Coordinates:
#   * x        (x) int64 0 1 2
#   * y        (y) |S1 'a' 'b' 'c' 'd'
将xarray作为xr导入
将numpy作为np导入
data=xr.DataArray([1,2,3],dims='x')
other=xr.DataArray(np.zero(4),coords=[('y',list('abcd'))]
数据2,其他2=xr.广播(数据,其他)
打印(数据2)
# 
#数组([[1,1,1,1],
#       [2, 2, 2, 2],
#       [3, 3, 3, 3]])
#坐标:
#*x(x)int64 0 1 2
#*y(y)| S1'a'b'c'd'

在xarray v0.10.0中,我使用了
分配坐标()
展开坐标()
的组合来添加新的尺寸和坐标变量

例如:

import xarray as xr
import numpy as np
data = xr.DataArray([1, 2, 3], dims='x', coords={'x': [10, 20, 30]})
data_newcoord = data.assign_coords(y='coord_value')
data_expanded = data_newcoord.expand_dims('y')
print(data_expanded)
# <xarray.DataArray (y: 1, x: 3)>
# array([[1, 2, 3]])
# Coordinates:
#   * x        (x) int64 10 20 30
#   * y        (y) <U11 'coord_value'
将xarray作为xr导入
将numpy作为np导入
data=xr.DataArray([1,2,3],dims='x',coords={'x':[10,20,30]})
data\u newcoord=data.assign\u coords(y='coord\u value')
data\u expanded=data\u newcoord.expand\u dims('y'))
打印(数据扩展)
# 
#数组([[1,2,3]])
#坐标:
#*x(x)int64 1020 30

#*y(y)在展开坐标中,您的预期输出是什么?与numpy不同,
pandas
xarray
(以前的
xray
)是面向nd表的,在pandas/xray中没有空维度的意义。我在某个维度上集成了一些数据数组,因此该维度被删除,但我需要保留(或重新创建)该维度(长度为1,而不是空的)在集成的DataArray中,正如其他一些函数/方法所期望的那样,我使用DataArray。这些函数/方法对您有帮助吗?(可能是
stack
/
unstack
位)我们如何向
y
维度添加多个坐标,例如y=[coord\u value1,coord\u value2,…,coord\u value10]?@alextc您可以通过
数据一次性实现。展开dims(dim=dict(y=[coord\u value1,coord\u value2,…,coord\u value10])