您的位置:首页 > 编程语言 > Python开发

python数组过滤,输出满足条件的元素,例如python输出一维矩阵中的非0元素

2017-08-17 15:58 1526 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python numpy
相关文章推荐