【发布时间】:2021-06-02 05:32:33
【问题描述】:
我正在解析来自我运行的各种测试的多个数据文件,并且我想将来自每个测试的值分组到属于集合的变量中。例如一对集合是:
type_GA_RX1 = collections.namedtuple('type_GA_RX1',
['GA_RX1',
'GA_RX1logmag',
'GA_RX1mag',
'GA_RX1ph'])
type_GA_RX2 = collections.namedtuple('type_GA_RX2',
['GA_RX2',
'GA_RX2logmag',
'GA_RX2mag',
'GA_RX2ph'])
当我遍历文件时,我想做这样的事情:
keys=dataGA.keys() # dictionary of parsed file data
for key in keys:
if len(dataGA[key]) >0:
GA_RX1logmag = np.array(dataGA[key].RX1_log_mag)
GA_RX1mag = 10**(GA_RX1logmag/20)
GA_RX1 = np.array(dataGA[key].RX1_real +1j*dataGA[key].RX1_imag)
GA_RX1ph = np.array(dataGA[key].RX1_phase)
然后将这些分配给集合类型:
type_GA_RX1[key].GA_RX1logmag = GA_RX1logmag
type_GA_RX1[key].GA_RX1mag = GA_RX1mag
type_GA_RX1[key].GA_RX1 = GA_RX1
type_GA_RX1[key].GA_RX1ph = GA_RX1ph
但是,我无法索引到“类型”对象;我收到此错误:
type_GA_RX1[key].GA_RX1logmag= GA_RX1logmag
TypeError: 'type' object is not subscriptable
我该怎么做?或者,这不是我想做的吗?如何创建集合数组?
为了清楚起见,dataGA 看起来像这样(摘录):
{0: RX1_real RX1_imag RX2_real ... distance RX2_log_mag RX1_log_mag
61 -0.019780 -0.005127 0.010010 ... 1.0 -38.426806 -33.793076
62 -0.018310 -0.010740 0.007812 ... 4.0 -38.190809 -33.462052
63 -0.016600 -0.012450 0.006348 ... 8.0 -38.523323 -33.659638
64 -0.020510 -0.005127 0.010010 ... 18.0 -38.426806 -33.497447
65 -0.015140 -0.013670 0.005127 ... 25.0 -38.488333 -33.808143
.. ... ... ... ... ... ... ...
477 -0.006104 -0.018310 -0.009521 ... 9795.0 -37.416049 -34.288563
478 -0.008545 0.017820 0.013180 ... 9799.0 -37.482664 -34.083018
479 0.000000 0.019290 0.010990 ... 9802.0 -37.584010 -34.293355
495 0.018800 0.004395 -0.005127 ... 9803.0 -36.574736 -34.285753
480 -0.008301 -0.017330 -0.007324 ... 9804.0 -37.062341 -34.326965
[401 rows x 9 columns],
1: RX1_real RX1_imag RX2_real ... distance RX2_log_mag RX1_log_mag
61 -0.019780 -0.005127 0.010010 ... 1.0 -38.426806 -33.793076
62 -0.018310 -0.010740 0.007812 ... 4.0 -38.190809 -33.462052
63 -0.016600 -0.012450 0.006348 ... 8.0 -38.523323 -33.659638
【问题讨论】:
标签: python python-3.x dictionary indexing collections