gpt4 book ai didi

python - python 中用于存储命名数据的 3 维立方体的最佳数据结构

转载 作者:行者123 更新时间:2023-12-02 05:40:42 25 4
gpt4 key购买 nike

我想要一些关于我选择的数据结构的反馈。我有一个特定电压值的 2D X-Y 电流值网格。我有几个电压阶跃,并将数据组织到 X-Y-电压立方体中。我在这里说明了轴:/image/iS7tW.jpg .

我目前在 python 字典中使用 numpy 数组来处理我正在扫描的不同类型的晶体管。我不确定这是否是最好的方法。我看过 Pandas,但我也不确定这对 Pandas 来说是否是一份好工作。希望有人能帮助我,这样我就可以学习Pythonic了!生成一些测试数据的代码和最终结构如下。

谢谢!

import numpy as np

#make test data

test__transistor_data0 = {"SNMOS":np.random.randn(3,256,256),"SPMOS":np.random.randn(4,256,256), "WPMOS":np.random.randn(6,256,256),"WNMOS":np.random.randn(6,256,256)}
test__transistor_data1 = {"SNMOS":np.random.randn(3,256,256), "SPMOS":np.random.randn(4,256,256), "WPMOS":np.random.randn(6,256,256), "WNMOS":np.random.randn(6,256,256)}
test__transistor_data2 = {"SNMOS":np.random.randn(3,256,256), "SPMOS":np.random.randn(4,256,256), "WPMOS":np.random.randn(6,256,256), "WNMOS":np.random.randn(6,256,256)}
test__transistor_data3 = {"SNMOS":np.random.randn(3,256,256), "SPMOS":np.random.randn(4,256,256), "WPMOS":np.random.randn(6,256,256), "WNMOS":np.random.randn(6,256,256)}


quadrant_data = {"ne":test__transistor_data0,"nw":test__transistor_data1,"sw":test__transistor_data2,"se":test__transistor_data3}

最佳答案

可能值得一看 xarray ,它类似于(并且部分基于)pandas,但专为 N 维数据而设计。

它的两个基本容器是一个DataArray(一个带标签的 ND 数组)和一个Dataset(它是一个 DataArray 的容器)。

In [29]: s1 = xray.DataArray(np.random.randn(3,256,256), dims=['voltage', 'x', 'y'])

In [30]: s2 = xray.DataArray(np.random.randn(3,256,256), dims=['voltage', 'x', 'y'])

In [32]: ds = xray.Dataset({'SNMOS': s1, 'SPMOS': s2})

In [33]: ds
Out[33]:
<xray.Dataset>
Dimensions: (voltage: 3, x: 256, y: 256)
Coordinates:
* voltage (voltage) int64 0 1 2
* x (x) int64 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...
* y (y) int64 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...
Data variables:
SPMOS (voltage, x, y) float64 -1.363 2.446 0.3585 -0.8243 -0.814 ...
SNMOS (voltage, x, y) float64 1.07 2.327 -1.435 0.4011 0.2379 2.07 ...

这两个容器都有很多不错的功能(请参阅文档),例如,如果您想知道每个传输器在第一个电压级别的 x 最大值,则可以是像这样的东西:

In [39]: ds.sel(voltage=0).max(dim='x').max()
Out[39]:
<xray.Dataset>
Dimensions: ()
Coordinates:
*empty*
Data variables:
SPMOS float64 4.175
SNMOS float64 4.302

关于python - python 中用于存储命名数据的 3 维立方体的最佳数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32288590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com