【问题标题】:How to declare numpy array of particualr type as type in dataclass如何将特定类型的numpy数组声明为数据类中的类型
【发布时间】:2020-03-26 22:13:41
【问题描述】:

我有什么:
我正在创建一个数据类,并说明其元素的类型:

class Task():  
     n_items: int  
     max_weight: int  
     max_size: int  
     items: numpy.array(Item)  # incorrect way of doing it

我想做的事
我想声明,items 将是“Item”类的对象的 numpy 数组

【问题讨论】:

标签: python-3.x numpy-ndarray python-dataclasses


【解决方案1】:

你可以把ndarray:

import numpy as np

class Task():  
     n_items: int  
     max_weight: int  
     max_size: int  
     items: np.ndarray

【讨论】:

  • 谢谢,但它仍然没有显示项目将是特定类型对象的 numpy 数组
  • 嗯,我明白了 - 然后我会考虑制作 numpy 容器,按照:docs.scipy.org/doc/numpy/user/basics.dispatch.html 并强制它只接受某些类型的对象。
  • 好吧,我刚刚了解到,如果您为用户创建的类提供一个 numpy 数组数据类型,那么它只是意味着 dtype=object,就像在通用 Python 对象中一样。它回答了我的问题。
  • 您没有任何原生 numpy 类型和受限 dtype
  • 是的 - 但是object 意味着一切。所以它可以是你的自定义类,也可以是其他任何东西。您实际上可以强制它只采用一种类型,但这意味着完全自定义 numpy 容器
猜你喜欢
  • 1970-01-01
  • 2021-11-13
  • 1970-01-01
  • 2022-08-22
  • 2012-09-28
  • 1970-01-01
  • 2011-08-25
  • 1970-01-01
  • 2015-02-20
相关资源
最近更新 更多