【发布时间】:2015-11-24 03:36:57
【问题描述】:
我想要一些关于我选择的数据结构的反馈。我有一个特定电压值的 2D X-Y 电流值网格。我有几个电压阶跃,并将数据组织成 X-Y-Voltage 的立方体。我在这里说明了坐标轴:http://imgur.com/FVbluwB。
我目前在 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}
【问题讨论】:
-
你为什么使用
dict?我猜一个简单的 numpy 3D 数组可以正常工作。 -
我认为该结构没有问题。它又好又干净,是 pythonic。在不了解您的实施的情况下,很难给出更具体的指导。你可以看看numpy.recarray,但我也不确定这就是你想要的。
-
次要:您的
quadrant_data行不太可能是正确的,您复制了键“se”,而缺少“nw”。 -
数据结构非常依赖于实现.. 没有关于您将如何访问数据以及您将对其进行何种操作的进一步细节,很难说。正如@Zdar 指出的那样,您可以向 numpy 数组添加一个额外的维度,而不是创建字典。
-
哎呀我确实复制了 se。谢谢你抓住那个。数据集是芯片上晶体管网格的 IV 扫描。我的实现是这个数据集内部存储在一个芯片对象中,这样我就可以对数据进行统计分析。我有多个版本的芯片,我认为如果它们可以是对象并处理各自的数据会很方便。
标签: python numpy pandas data-structures data-analysis