给定一个ensemble estimator,我想遍历它的estimators_字段的内容。
问题是,这个领域可以有一个非常不同的结构。
例如,对于aGradientBoostingClassifier,它是一个秩-2numpy.ndarray(因此我可以使用nditer),而对于aRandomForestClassifier,它是一个简单的list
我能做得更好吗:

import numpy as np
def iter_estimators(estimators):
    if isinstance(estimators, np.ndarray):
        return map(lambda x: x[()], np.nditer(estimators, flags=["refs_ok"]))
    return iter(estimators)

最佳答案

我想您可以使用np.asarray来方便地确保对象是一个ndarray。然后使用ndarray.flat在扁平数组上获取迭代器。

>>> estimators = model.estimators_
>>> array = np.asarray(estimators)
>>> iterator = array.flat
>>> iterator
<numpy.flatiter at 0x7f84f48f8e00>

关于python - 我如何遍历估计量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58615038/

10-10 10:09