gpt4 book ai didi

Python - 如何实现与 NumPy 函数兼容的自定义类?

转载 作者:行者123 更新时间:2023-12-01 03:05:17 26 4
gpt4 key购买 nike

我正在尝试实现我自己的自定义类来存储数据。我想让它与 NumPy 兼容,这样我就可以像这样调用 NumPy 函数:

np.sin(my_object)

我知道有一本名为__array_interface__的字典,但是在尝试使用它时我遇到了很多奇怪的错误。

import numpy as np
import pandas as pd

class TDF:
__array_interface__ = {'typestr': '|i1', 'version': 1}

def __init__(self):
self.ddata = pd.DataFrame([1, 2, 3])
self.shape = self.ddata.shape

def __iter__(self):
return iter(self.ddata)

def __len__(self):
return len(self.ddata)

def __getitem__(self, key):
return self.ddata.__getitem__(key)

if __name__ == '__main__':
tdf1 = TDF()
tdf = np.sin(tdf1)

上面的代码给了我一个运行时错误:

ValueError: setting an array element with a sequence.

我错过了什么?另一方面,pandas 的源代码(哪些类与 NumPy 兼容)没有显式使用 array_interface 字典...

最佳答案

一个简单的修复方法是实现

def __array__(self):
return self.ddata

关于Python - 如何实现与 NumPy 函数兼容的自定义类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43493256/

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