python技巧语句

总结平时用到的一些巧妙地python操作语句

  1. 假设我有个np数组a,想获取其大于某个阈值threshold的所有子集及其编号(可以很明显的看到,后面的代码水平和函数的水平差远了。。。)
a = np.array([1,2,3,4,5,4,3,2,1,2,3,4,5,6,4,3,2,1])

def split_diff_step(signal, threshold):
    # a = np.array([4, 1, 2, 3, 4, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 4, 3, 2, 1, 4])
    index = np.linspace(0, signal.shape[0] - 1, num=signal.shape[0]).astype(int)
    return np.split(signal, np.where(np.diff(signal > threshold))[0] + 1)[1::2], \
           np.split(index, np.where(np.diff(signal > threshold))[0] + 1)[1::2]


a = np.array([1,2,3,4,5,4,3,2,1,2,3,4,5,6,4,3,2,1])
# 注意这里第一个值即a[0]一定要小于阈值,否则得到的结果就会变成期望集合的补集
value, index = split_diff_step(a, 3)
print(value)
[array([4, 5, 4]), array([4, 5, 6, 4])]
print(index)
[array([3, 4, 5]), array([11, 12, 13, 14])]
  1. 统计numpy矩阵中值为255的个数,尤其适用于统计二值图白色像素点个数
import numpy as np

a = [[1,2,3,2],[3,4,2,1]]
a = np.array(a)
print(np.sum(a == 1))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值