pydantic 初始化 numpy ndarray
pydantic initialize numpy ndarray
如何在使用 pydantic 时初始化 ndarray?
此代码抛出 ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
from pydantic.dataclasses import dataclass
import numpy as np
@dataclass
class TestNumpyArray:
numpyArray: np.ndarray = np.zeros(10)
testNumpyArray = TestNumpyArray()
您需要为 Field
声明提供 default_factory
。
请注意,您不能在 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()
您还可以将非 Pydantic 数据类与 dataclasses.field(default_factory=...)
一起使用。
如何在使用 pydantic 时初始化 ndarray?
此代码抛出 ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
from pydantic.dataclasses import dataclass
import numpy as np
@dataclass
class TestNumpyArray:
numpyArray: np.ndarray = np.zeros(10)
testNumpyArray = TestNumpyArray()
您需要为 Field
声明提供 default_factory
。
请注意,您不能在 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()
您还可以将非 Pydantic 数据类与 dataclasses.field(default_factory=...)
一起使用。