python中用于存储名为d的三维立方体的最佳数据结构

2024-10-03 21:33:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我想要一些关于我的数据结构选择的反馈。我有一个2D X-Y网格,其中有一个特定电压值的电流值。我有几个电压步骤,把数据组织成一个X-Y-voltage的立方体。我在这里演示了这些轴:http://imgur.com/FVbluwB。在

我目前使用python字典中的numpy数组来处理我正在扫描的不同类型的晶体管。我不确定这是不是最好的办法。我看过熊猫,但也不确定这对熊猫来说是否合适。希望有人能帮我,这样我就能学会做Python了!生成一些测试数据的代码和结束结构如下。在

谢谢你!在

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} 

Tags: testnumpydatanprandom电压randndata1
1条回答
网友
1楼 · 发布于 2024-10-03 21:33:17

可能值得检查一下xarray,它类似于(并且部分基于)pandas,但是为N维数据设计的。在

它的两个基本容器是一个DataArray,它是一个带标签的ND数组,和一个Dataset,它是一个DataArrays的容器

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,应该是这样的:

^{pr2}$

相关问题 更多 >