我试图将一个破烂/锯齿状的数组实现为ndarray子类。这个想法是,实际数组实际上是所有锯齿状行的连接块,并且对/*--------------------------------------------------------------------------*/
/**
* @brief
* Validate command line string for correct command parameters
*
* @param SeqCmd_T* seqCmd - Sequence command object to evaluate
*
* @return
* bool - true = validated, false = non validated
*
* Details
* SeqCmd_T->paramStr.tokens[0] = SignalName, "Slot1"
* SeqCmd_T->paramStr.tokens[1] = Dwell, "1"
*
*/
/*--------------------------------------------------------------------------*/
和__getindex__
的调用被子类截获并适当地转换。这和ufuncs一样出色。
但是,例如,当我尝试使用__setindex__
时,它会返回基础级联数组的坐标,而我不知道如何更改它。我的想法是:
np.where
所使用的迭代器的行为-尽管看起来where
重载并没有改变__iter__
获取其迭代器的方式(这在numpy C中很深)。 不幸的是,经过数小时的numpy代码挖掘并阅读了“ subclassing ndarray”文章之后,我无法弄清楚如何执行这两种操作。首选纯Python解决方案,但在这一点上,我也愿意使用C做事情。