在Python中,如何将ndarray附加到函数中的self

2024-03-29 14:43:44 发布

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

我有几个包含信号的文本文件。时间(t)对于这两个文件来说是公共的,但是每个文件包含不同的信号(a,b,c,d),所以我把所有的东西都组合起来。我想用这个作为上课的基础。你知道吗

import numpy as np
from numpy.lib.recfunctions import join_by
class MyClass():
    def __init__(self):
        f1 = open('file1', 'r')
        f2 = open('file2', 'r')
        data1 =  np.loadtxt(f1, dtype={'names': ('t', 'a', 'b'), 
            'formats':('e5', 'e5', 'e5')})
        data2 =  np.loadtxt(f2, dtype={'names': ('t', 'c', 'd'), 
            'formats':('e5', 'e5', 'e5')})  
        f1.close() 
        f2.close()
        data12 = join_by('t', data1, data2, jointype='outer')
        print 'Type: ', type(data12)
        print 't: ', data12['t']
        self = np.append(self, data12)

当我运行这个时,我得到:

In [1]: myData = MyClass()
Type:  <class 'numpy.ma.core.MaskedArray'>
t:  [0.0 0.1 0.2 0.3 0.4]

In [2]: myData['t']
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-192-89155a5d901a> in <module>()
----> 1 myData['t']

TypeError: __getitem__() takes exactly 3 arguments (2 given)

有没有一种方法可以访问“t”作为myData['t']和类似的myData['a']以及所有其他信号?我可以按你说的做我的数据.data但那是多余的。我同样乐意改变一些事情,所以我有myData.t,myData.a,等等


Tags: 文件importselfnumpyby信号npmyclass
1条回答
网友
1楼 · 发布于 2024-03-29 14:43:44

MyClass.__getitem__可以委托给ndarray__getitem__方法。你知道吗

class MyClass(object):
    def __init__(self):
        ...
        self._data = data12

    def __getitem__(self, obj):
        return self._data.__getitem__(obj)

相关问题 更多 >