将Python类强制转换为Numpy数组

将Python类强制转换为Numpy数组,python,python-3.x,numpy,python-dataclasses,Python,Python 3.x,Numpy,Python Dataclasses,我可以将python类强制转换为numpy数组吗 from dataclasses import dataclass import numpy as np @dataclass class X: x: float = 0 y: float = 0 x = X() x_array = np.array(x) # would like to get an numpy array np.array([X.x,X.y]) 在最后一步中,我希望获得一个数组np.array([X.X,X.

我可以将python类强制转换为numpy
数组吗

from dataclasses import dataclass
import numpy as np
@dataclass
class X:
    x: float = 0
    y: float = 0
x = X()
x_array = np.array(x) # would like to get an numpy array np.array([X.x,X.y])
在最后一步中,我希望获得一个数组
np.array([X.X,X.y])
。相反,我得到的是
数组(X(X=0,y=0),dtype=object)

我是否可以为
数据类
提供方法,以使铸件按需要工作(或使
数据类
的现有方法之一过载)?

从中我们可以看到第一个参数的要求

对象
类似数组

数组,任何暴露数组接口的对象, 一个对象,其
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
方法返回一个数组或任何 (嵌套的)序列

因此,我们可以定义一个
\uuuuuuuuuuuuuuu
方法,如

@dataclass
X类:
x:float=0
y:浮点=0
定义数组(自)->np.ndarray:
返回np.array([self.x,self.y])
它将被
np.array
使用。我想这应该适用于任何自定义Python类。

从中我们可以看到第一个参数的要求

对象
类似数组

数组,任何暴露数组接口的对象, 一个对象,其
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
方法返回一个数组或任何 (嵌套的)序列

因此,我们可以定义一个
\uuuuuuuuuuuuuuu
方法,如

@dataclass
X类:
x:float=0
y:浮点=0
定义数组(自)->np.ndarray:
返回np.array([self.x,self.y])

它将被
np.array
使用。我想这应该适用于任何自定义Python类。

尝试添加
def\uuuuu iter\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu!我确实试过了,但没用。也许我定义错了。你能提供一个完全指定的答案吗?这是一个基于直觉的错误建议,在阅读了
numpy.array
的文档字符串之后,很明显,你可以定义
\uuuuuuu array\uuuuu
方法,比如
def\uu array\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuo(self):返回np.array!这真的很有帮助。你想写一个答案让我接受吗?试着添加
def\uuu iter\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu!我确实试过了,但没用。也许我定义错了。你能提供一个完全指定的答案吗?这是一个基于直觉的错误建议,在阅读了
numpy.array
的文档字符串之后,很明显,你可以定义
\uuuuuuu array\uuuuu
方法,比如
def\uu array\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuo(self):返回np.array!这真的很有帮助。你想写个答案让我接受吗?