python數組過濾,輸出滿足條件的元素,例如python輸出一維矩陣中的非0元素

1.python輸出一維矩陣或numpy數組中的非0元素

import numpy as np
a = np.mat([[0,1,0,1,2,3,4,0]])
b = np.array([0,1,0,1,2,3,4,0])
print a[a>0] # []裏面是不等式成立的情況
print b[(b>0) & (b < 3)]

輸出結果:
[[1 1 2 3 4]]
[1 1 2]

2.但是列表不行:

import numpy as np
a = np.mat([[0,1,0,1,2,3,4,0]])
b = a.tolist() #把矩陣轉換爲列表
print a[a>0]
print b
#print b[b>0] #這一句是錯誤的

輸出結果:
[[1 1 2 3 4]]
[[0, 1, 0, 1, 2, 3, 4, 0]]

3.另外,直接對二維矩陣(numpy數組)輸出也是不行的:

import numpy as np
a = np.mat([[0,1,0,1,2,3,4,0],[1,2,0,1,0]])
b = np.array([[0,1,0,1,2,3,4,0],[1,2,0,1,0]])
print a[a>0]
print b[b>0]

輸出結果:
[[[0, 1, 0, 1, 2, 3, 4, 0] [1, 2, 0, 1, 0]]]
[[0, 1, 0, 1, 2, 3, 4, 0] [1, 2, 0, 1, 0]]

另外,numpy有nonzero()函數,可以篩選多維矩陣的非0元素,具體看另一篇文章:
http://blog.csdn.net/u011361880/article/details/73611740

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章