带标记轴的numpy数组
axarra的Python项目详细描述
标题:Axarray 作者:sylvain.guieu@gmail.com
#导言 axarray是一个可以标记轴的numpy数组。
思想是能够操纵数组,并在不知道数组形状顺序的情况下对轴进行操作,但知道与轴的“物理”含义相关的标签。
通常在科学中,用可理解的标签命名阵列轴是有用的。 例如,对于在不同时间拍摄的2d图像,获取立方体的轴名可以是[“time”,“y”,“x”]
axarray对象的目标是这样做。例如,cTIT> A.Mead(轴=“Times”)将在标号为
#安装 带着皮普 ` > pip install axarray `
或者来自python路径中的git
` > git clone https://github.com/SylvainGuieu/axarray.git `
#示例
`python >>> a = axarray( np.random.random((10,4,5)), ["time", "y", "x"]) >>> b = a.transpose( ["x","time","y"]) >>> b.axes ["x","time", "y"] `
可操作2转座子阵列,只要与轴名称
匹配即可。`python >>> (a+b).axes ["time", "y", "x"] ` 使用轴标号
的NUMPY函数`python >>> a.min(axis="time").shape (4,5) # similar to: >>> np.min(a , axis="time") `
轴可为轴标号
`python >>> a.mean(axis=["x","y"]).shape (10,) `
可以使用方便的应用方法。在非直接调用中非常有用,例如在plot func中
`python >>> a.apply(time_reduce=np.mean, y_idx=slice(0,2)).shape (2,5) `
在一次调用中变换、重塑重命名轴的形状
`python >>> at = a.transform( [("pixel","y","x"),"time"]) >>> at.shape (20, 10) # (4*5, 10) >>> at.axes ['pixel', 'time'] `
从命名索引中提取图像光谱
`python ### make some indices >>> iy, ix = axarray( np.indices( (3,4)), [0 ,"spatial", "freq"]) >>> ax[:,iy,ix].axes ['time', 'spatial', 'freq'] `