使用while循环来增加数组中的值,直到所有值都=> 100

保罗·斯特伯格

因此,这是本书中的练习之一,如何在页面138上像cs python3那样思考:使用掩码将以下列表中所有低于100的值乘以2:

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

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

所以我尝试这样做:

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

print(a[150 < a < 200])

它不会退出循环,即使它到达[230 160 284 156 152]之后也会停止乘法。

抱歉,如果这是之前提出的问题,但我在任何地方都找不到答案...

tjysdsg
while np.count_nonzero(a<=100) > 0: 
    a[a<100] *= 2

print(a[(150<a) & (a < 200)])

您的程序有两个错误。首先,根据numpy 文档np.all()

测试是否沿着给定轴的所有数组元素求值为True。因此,这里似乎没有用。

其次,无法a < x < b检查x是否在间隔[a,b]上。NumPy做的方式是(a<x) & (x>b)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章