给定一个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/