fab*_*ian 3 python numpy python-3.x python-dataclasses
我可以将 python 类转换为 numpy 吗array?
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])
Run Code Online (Sandbox Code Playgroud)
在最后一步中,我想获得一个数组np.array([X.x, X.y])。相反,我得到了array(X(x=0, y=0), dtype=object)。
我可以提供 的方法,dataclass以便根据需要进行转换(或重载 的现有方法之一dataclass)吗?
从文档字符串中numpy.array我们可以看到第一个参数的要求
object:array_like数组、公开数组接口的任何对象、其
__array__方法返回数组的对象或任何(嵌套)序列。
所以我们可以定义一个__array__类似的方法
@dataclass
class X:
x: float = 0
y: float = 0
def __array__(self) -> np.ndarray:
return np.array([self.x, self.y])
Run Code Online (Sandbox Code Playgroud)
它将被使用np.array。我猜这应该适用于任何自定义 Python 类。
| 归档时间: |
|
| 查看次数: |
2323 次 |
| 最近记录: |