gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 18:11:17 25 4
gpt4 key购买 nike

我有几个包含信号的文本文件。时间 (t) 对于两个文件来说是相同的,但每个文件包含不同的信号(a、b、c、d),因此我将所有内容结合起来。我想用它作为类(class)的基础。

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'] 和所有其他信号访问?我可以将其作为 myData.data['t'] 来完成,但这是多余的。我同样乐意改变一些东西,所以我有 myData.t、myData.a 等。

最佳答案

MyClass.__getitem__ 可以委托(delegate)给 ndarray__getitem__ 方法。

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

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

关于python - 在Python中,如何在函数中将ndarray附加到self,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25878997/

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