jue*_*erg 6 python-3.x numpy-ndarray pydantic
ndarray使用 pydantic 时如何初始化?
这段代码抛出一个ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
from pydantic.dataclasses import dataclass
import numpy as np
@dataclass
class TestNumpyArray:
numpyArray: np.ndarray = np.zeros(10)
testNumpyArray = TestNumpyArray()
Run Code Online (Sandbox Code Playgroud)
您需要提供default_factory一个Field声明。
请注意,您不能在 Pydantic 数据类中使用任意类型,因此您可能需要扩展BaseModel:
from pydantic import BaseModel, Field
import numpy as np
class TestNumpyArray(BaseModel):
numpyArray: np.ndarray = Field(default_factory=lambda: np.zeros(10))
class Config:
arbitrary_types_allowed = True
testNumpyArray = TestNumpyArray()
Run Code Online (Sandbox Code Playgroud)
您还可以将非 Pydantic 数据类与dataclasses.field(default_factory=...).
| 归档时间: |
|
| 查看次数: |
9147 次 |
| 最近记录: |