【问题标题】:How to write up a loop when certain value hits condition and stop the loop?当某个值达到条件并停止循环时,如何编写循环?
【发布时间】:2021-08-16 07:10:58
【问题描述】:

问题陈述: 我想找到 explain_variance_ratio.sum() 首先达到 1 的 n_components。结束循环并追加到列表中。

X.shape
(200, 6395)

这是我的代码,需要一些建议。代码效率不高,因为我需要设置一个常量。

最新编辑:

res=[]
for i in range(0,X.shape[1],50):
    svd=TruncatedSVD(i)
    svd.fit(X)
    if svd.explained_variance_ratio_.sum() > 0.95 and svd.explained_variance_ratio_.sum() <1:
        res.append([i,svd.explained_variance_ratio_.sum()])
        break
    else:
        continue
    break


res
[[200, 0.9999999999999998]]

【问题讨论】:

  • 请复制粘贴您的代码,而不是发布代码图片
  • 使用break 停止循环
  • 代码在哪里“设置一个常数”
  • @shree.pat18 编辑感谢
  • 使用 break 或将此循环设为函数并在条件为真时返回

标签: python loops for-loop conditional-statements


【解决方案1】:

这段代码应该可以工作:

res=[]
for i in range(0,X.shape[1],50):
    svd=TruncatedSVD(i)
    svd.fit(X)
    if svd.explained_variance_ratio_.sum() > 0.95 and svd.explained_variance_ratio_.sum() <1:
        res.append([i,svd.explained_variance_ratio_.sum()])
    else:
        break

【讨论】:

    猜你喜欢
    • 2019-10-17
    • 2022-06-10
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 2016-04-12
    • 2014-05-06
    • 1970-01-01
    相关资源
    最近更新 更多