2016-10-27 40 views
0

我有一個N維數組= X,我想檢查X中的每個值是否大於0.35。我寫的是: -如何在Python中循環一個nd.array

for number in X: 
    if (.35> number): # Here error occurs 
     print (enumerate(number)) 

但我得到這個錯誤:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() 

我要救小於0.35列表中的

+0

您可以使用['numpy.nd.array.flatten'](https://docs.scipy.org/doc/numpy/reference /generated/numpy.ndarray.flatten.html),但你很可能想使用John Zwinck的回答 – Itay

回答

2

在X的每個值的索引工作時與NumPy你必須始終努力在向量空間中運作。這意味着,不寫for循環,也不in

對於您目前的情況下,你可以這樣做:

print(X[X < 0.35]) 

這將是大量比寫一個循環更快。如果你必須讓他們在不同的行打印,您可以:

values = X[X < 0.35] 
np.savetxt(sys.stdout, values) 
+0

感謝您的回覆,但我想知道該值小於0.35的索引號,並且想要生成一個列表所有這些指標,如何做到這一點? (如果你可以讓我知道) –

+0

要生成索引列表,請使用'np.nonzero(X <0.35)' –

+0

@ A.wadhawan,你在找什麼是numpy.where https://docs.scipy.org /doc/numpy/reference/generated/numpy.where.html – Jblasco