点与点及直线的关系,还有字符串的读取

这里记录我写过的一些小函数,方便我以后找,也方便大家^v^

有点杂乱无章,哈哈

1、点线间距离:

def distance_point_line(point,line):
    “”“import numpy as np”“”
    k = line[0]
    b = line[1]
    return np.abs(point[1]-k*point[0]-b)/np.sqrt(1+k*k)

 2、两点间中点坐标:

def midpoint(point1,point2):
    return[0.5*(point1[0]+point2[0]),0.5*(point1[1]+point2[1])]

3、将点按绝对值向下取整(主要是画图添加文字时取坐标用的):

def int_point(point):
    return[int(point[0]),int(point[1])]

4、一次性从字符串中读取一段,以markers为间隔

def get_data_single(text,read_flag,markers,dropout_markers=False):
    """import re"""
    if dropout_markers:
        dropout_markers = len(markers)
    else:
        dropout_markers = 0
    read_flag_ = read_flag
    read_flag = read_flag_ + re.search(markers,text[read_flag+1:]).span()[1] + 1
    data = text[read_flag_:read_flag-dropout_markers]
    return data,read_flag

使用示例:

read_flag = 0
text = '35 35 33 34 36 37 37 34 34 37 34 37 38 37 35 33 33 32 39 33 39 34 35 37 36 37 35 32 34 35 33 35 37 36 38'
markers = ' '
for _ in range(10):
    data,read_flag = get_data_single(text,read_flag,markers,dropout_markers=True)
    print(data,end='\t')

5、数据截取,提取数据data.shape=(2,n),要求第一行的数据要在range1范围内,第二行数据在range2范围内,若不满足,整列删除

def data_intercept(data,range1,range2):
    """import numpy as np"""
    data = data[np.expand_dims((data[0,:]<range1[1])&(data[0,:]>range1[0]),0).repeat(2,axis=0)].reshape(2,-1)
    data = data[np.expand_dims((data[1,:]<range2[1])&(data[1,:]>range2[0]),0).repeat(2,axis=0)].reshape(2,-1)
    return data

使用示例:

data = np.random.randn(2,10)
range1=[-2,0]
range2=[0,2]
data = data_intercept(data,range1,range2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值