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

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值