因此,这是本书中的练习之一,如何在页面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]之后也会停止乘法。
抱歉,如果这是之前提出的问题,但我在任何地方都找不到答案...
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] 删除。
我来说两句