gpt4 book ai didi

python - 如何乘以一个数字直到它达到 Python 中的特定数字?

转载 作者:行者123 更新时间:2023-12-05 08:21:40 27 4
gpt4 key购买 nike

我希望此代码乘以此列表,直到所有数字都超过 100,但我在循环部分苦苦挣扎。

import numpy as np

a = np.array([230, 10, 284, 39, 76])

def all_30_or_up(ls):
for i in ls:
if i < 100:
return False
return True

while True:
if all_30_or_up(a) == False:
print(a*2)
else:
break

这个练习来自《如何像计算机科学家一样思考:用 Python 3 学习》一书。这是书中的实际问题:

“使用掩码将以下列表中所有低于 100 的值乘以 2:

a = np.array([230, 10, 284, 39, 76])

重复此操作,直到所有值都超过 100。(不是手动,而是通过循环)然后,选择 150 < a < 200 之间的所有值。”

最佳答案

如问题所述,您需要在此处使用掩码来选择值低于 100 的索引。让我们使用练习给出的数据集。

import numpy as np
a = np.array([230, 10, 284, 39, 76])

首先,我们需要能够有效地检查所有值是否都在 100 以上。我们可以通过对整个数组执行比较来实现,它返回一个 bool 数组,并检查它们的值:

# To check if all values are above 100:
np.all(a>100) # or alternatively: np.any(a<100)

现在我们需要一种方法来只选择值低于 100 的索引。幸运的是,我们可以使用 numpy 的复杂索引,实际上是对整个数组进行比较,它给出一个 bool 数组,并在内部使用它[] 选择比较结果为 True 的索引。然后我们将它们乘以二,并更新它们。

a[a<100] = a[a<100]*2
# or inplace multiplication:
a[a<100] *= 2

现在我们需要将所有这些放入一个循环中:

while not np.all(a>100):
a[a<100] *= 2

给你!

关于python - 如何乘以一个数字直到它达到 Python 中的特定数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71083476/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com