【发布时间】:2023-02-05 16:00:00
【问题描述】:
我试图用矢量化形式替换下面的 for 循环,但出现错误。我如何解决它?
for i in range(0,len(sigma[0])):
if(sigma[0][i]<=threshold):
sigma[0][i]=threshold
我使用的矢量化形式是
sigma[sigma <= threshold] = threshold
我得到的错误
in <module>
sigma[sigma <= threshold] = threshold
TypeError: '<=' not supported between instances of 'list' and 'float'
【问题讨论】:
-
基本 Python 不支持该操作。你需要一个像 numpy 这样的包来进行数组编程。
-
sigma[0][sigma[0] <= threshold] = threshold能解决你的问题吗?您使用什么类型的数据和模块? -
@AEinstein 请分享更多关于 sigma 的信息。它是列表列表还是其他?你最终想遍历所有
sigma吗?或者真的只是sigma[0]?
标签: python for-loop vectorization