2017-05-25 22 views
1

林卡住numpy的練習,說:如何在Numpy數組中的所有值都超出整數閾值時停止迭代?

使用掩模乘以2在如下因素列表belowe 100中的所有的值:

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

重複,直到所有值都高於100

import numpy as np 

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

cutoff = 100 

for i in range (10): 
    a[a < cutoff] *= 2 
    print (a) 
    if a.all() > cutoff: 
     break 

我不知道如何停止迭代時,在陣列上升到高於臨界值的所有值?我認爲numpy.all()不適用於intger?!

+0

應用'all'到'一> cutoff'布爾數組。 – hpaulj

回答

0

從官方numpy.all文檔:

測試沿給定軸的所有數組元素是否評估爲True。

也就是說,numpy.all返回一個bool,所以在a.all() > cutoff你真的做True > cutoffFalse > cutoff,其計算結果爲1 > cutoff0 > cutoff,所以它總是False爲。

,則應該更換if條件讓剛剛從a的元素比cutoff更大,執行這些all

import numpy as np 

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

cutoff = 100 

for i in range (10): 
    a[a < cutoff] *= 2 

    print(a) 

    if (a > cutoff).all(): // HERE 
     break 
0
while not (a < 100).all(): 
    a[a < 100] *= 2 
相關問題