【问题标题】:Convert each element in tensor variable greater than 5 into 10将张量变量中大于 5 的每个元素转换为 10
【发布时间】:2018-07-30 02:33:33
【问题描述】:

例如张量变量a为:

a = [1, 2, 3, 4, 5, 6]

我想将张量变量中大于5的每个元素转换成10。

即从[1, 2, 3, 4, 5, 6] 转换为[1, 2, 3, 4, 10, 10]

我应该使用forif 语句吗?

还是有更简单的编码?

非常感谢!

【问题讨论】:

  • a = [1, 2, 3, 4, 5, 6],a 定义为一个元素的元组,即6 个元素的列表。这真的是你想要的吗?
  • 欢迎来到Stack Overflow!请在您的问题中包含您已经尝试过的内容以及您的 Python 代码示例。你试过这两种方法吗?你有什么困难?请参阅How to Ask 以及如何创建minimal reproducible example
  • 我认为您的意思是 "greater or equal" 而不是 "greater"

标签: python variables tensor


【解决方案1】:

使用列表理解:

a = [1, 2, 3, 4, 5, 6]
a10 = [elt if elt < 5 else 10 for elt in a]

输出:

[1, 2, 3, 4, 10, 10]

【讨论】:

  • 非常感谢!但是错误消息显示“TypeError:'Variable' 对象不可迭代。”
  • 去掉你代码中a = [1, 2, 3, 4, 5, 6],后面的逗号(不是我的答案),或者直接使用我的答案中提供的整个代码。
【解决方案2】:

您的示例建议您希望将数字大于或等于替换为 5 到 10。一种简单的方法是使用简单的 for 循环更新列表:

a = [1, 2, 3, 4, 5, 6]

for i, number in enumerate(a):
    if number >= 5:
        a[i] = 10

print(a)
# [1, 2, 3, 4, 10, 10]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-11
    • 1970-01-01
    • 2012-12-11
    • 2016-09-12
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    • 2020-08-05
    相关资源
    最近更新 更多