![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程
hr_net
这个作者很懒,什么都没留下…
展开
-
python列表self append无限嵌套的原理
示例一:self append 形成无限嵌套原理:变量a指向一个列表,列表的第一个元素为0;执行了append操作后,第二个元素又反过来指向a,即指向了a所指向的列表,因此形成了一个无限嵌套的循环:[0, [0, [0, [0, …]]]]。如下图所示:虽然a是无限嵌套的列表,但a.append(a)的操作,并不会递归遍历其中的每一个元素。它只是扩充了原列表的第二个元素,并将其指向a,因此不会出现stack overflow的问题,自然不会报错。但是判断两个自嵌套列表是否相等时,需要遍历原创 2021-12-09 20:43:02 · 2229 阅读 · 0 评论 -
Python中的浅拷贝(shallow copy)和深度拷贝(deep copy)区别
先上结论:①浅拷贝,是指重新分配一块内存,创建一个新的对象。里面的元素是原对象中子对象的引用。因此,如果原对象中的元素不可变,那倒无所谓;但如果元素可变,浅拷贝通常会带来一些"联动"。②深度拷贝,是指重新分配一块内存,创建一个新的对象,并且将原对象中的元素,以递归的方式,通过创建新的子对象拷贝到新对象中。因此,新对象和原对象没有任何关联。一句话结论:浅拷贝是对原对象中子对象的引用,而深拷贝对位子对象间无任何关联。例子:浅拷贝l1 = [[1, 2], (30, 40)]l2 =原创 2021-12-08 17:09:26 · 357 阅读 · 0 评论 -
轨迹平滑python
sg滤波:# =============================================================================# Savitzky-Golay滤波拟合法# =============================================================================def optimizePoints(inPoint): """ 5点1阶段轨迹平滑算法 i原创 2021-08-18 15:47:35 · 1137 阅读 · 0 评论 -
图像矢量化
python将图像目标区域转换为LineString、Polygon数据格式。import osimport numpy as npimport cv2from PIL import Imageimport matplotlib.pyplot as pltfrom tqdm import tqdmimport sknwfrom skimage.morphology import skeletonize, medial_axisimport pandas as pdimport geo原创 2021-08-06 16:46:03 · 894 阅读 · 0 评论 -
LineString、Polygon矢量坐标读取
python 中 shapely.geometry库常用linestring、polygon、point等矢量数据结构,在多坐标系转换过程中需要提取每个数据结构单点坐标,提取方式如下:def get_linestring_coords(linestring): return linestring.coords[:]def get_polygon_coords(polygon): return shapely.wkt.loads(polygon.wkt.replace("POLYGO原创 2021-08-06 16:34:14 · 3337 阅读 · 0 评论 -
按颜色提取图像区域
import cv2import numpy as npdef split_color(path): img = cv2.imread(path) hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) # range of red lower_red = np.array([160, 60, 60]) upper_red = np.array([180, 255, 255]) lower_red2 = np.array.原创 2021-08-06 16:25:30 · 314 阅读 · 0 评论 -
centos 环境安装 open3d-python
(需要获取centos服务器的root权限)一、conda新建虚拟环境 1.conda create -n py37 python=3.7二、安装步骤 1.进入虚拟环境:source activate py37 2.安装open3d-python库:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple open3d-python 3.安装libgl.so依赖:yum whatprovideslibGL...原创 2021-05-18 11:45:27 · 1112 阅读 · 0 评论 -
ubuntu安装python-pcl点云库、open3d库
pcl点云库在C++中经常使用,而在python python-pcl集成了pcl库中的一部分功能,本文给出python-pcl库在Ubuntu16.04中的安装教程0.系统准备申请Ubuntu系统开发机,anaconda配置教程如前述文章 https://blog.csdn.net/qq_38742161/article/details/110921649 1.pcl安装sudo apt-get install libpcl-dev pcl-tools2.python-pcl安..原创 2021-01-07 16:51:06 · 696 阅读 · 2 评论 -
python 常用的世界坐标系互相转化
from coord_convert.transform import wgs2gcj, wgs2bd, gcj2wgs, gcj2bd, bd2wgs, bd2gcj"""1.coord-convert库,pip install coord-convert2.wgs2gcj : convert WGS-84 to GCJ-02wgs2bd : convert WGS-84 to DB-09gcj2wgs : convert GCJ-02 to WGS-84gcj2bd : conv.原创 2020-12-09 21:27:02 · 1710 阅读 · 0 评论 -
python list转geojson
本篇介绍如何将列表转化正geojson,在qgis上进行可视化。代码:import pandas as pdfrom shapely.wkt import dumps, loadsimport geopandas as gpdfrom shapely.geometry import LineString# geoDataFrame对象写入geojson文件def geoDataframe2geojson(data, geojson_path): data.to_file..原创 2020-12-09 21:22:45 · 857 阅读 · 0 评论 -
linux开发环境配置之:安装anaconda并配置jupyter
在公司新申请一台服务器,需要配置python开发的一系列环境。下面展示anaconda的安装和jupyter的配置过程。一、熟悉资源查看物理内存#shellcd /df -h熟悉资源后,我们挑选一块磁盘data2,将安装anaconda安装在其中(避免安装在home下,导致服务器资源占满后崩溃)。shell中输入pwd,保存安装路径备后续使用。二、安装anaconda1.在安装路径下下载anaconda.sh文件: Anaconda3镜像:https:/...原创 2020-12-09 14:46:03 · 818 阅读 · 0 评论 -
经纬度与墨卡托坐标转化
处理经纬度数据时,经常需要计算欧式空间下的若干特征,比如长度、距离、角度等。本文介绍经纬度与墨卡托坐标系下的两两转换。import math#经纬度转墨卡托坐标def ls(lng,lat): # list=ll_wl.split(',') lat=float(lat) lng=float(lng) x = lng* 20037508.34 / 180 y = math.log(math.tan((90 + lat) * math.pi / 360)).原创 2020-12-06 17:20:44 · 5177 阅读 · 1 评论 -
mac pycharm2019.3版本Matplotlib弹窗显示
pycharm从2017.3版之后,Matplotlib默认内嵌显示,相比弹窗显示的风格,内嵌显示有诸多功能缺失,比如在画布中随鼠标移动显示像素位置,以及三维图像的旋转等操作。本教程展示如何更改plot的默认内嵌至弹窗显示。一、pycharm版本确认:2019.03,其它版本的设置请随个人版本相应更改即可。二、设置步骤PyCharm | Preferences | Tools | Python Scientific |界面下:Show plots in tool window 选.原创 2020-11-23 14:28:40 · 578 阅读 · 0 评论 -
python中的print信息写入文件
调试code中,在循环体经常需要将当前epoch的信息print出来进行校验。当epoch过多时难以查阅,因此我们将print内容输出到文件中保存。一、demo练习sys.out对象默认为当前屏幕输出,可以通过变量改为文件写入,同样也可以重新指定回当前屏幕,代码如下。"""write the infos of print to filesauthor:huangrui"""import sysprint("hello, i come first!")__console = .原创 2020-11-19 11:48:48 · 5152 阅读 · 0 评论 -
多进程编程demo
在服务器资源丰富的情况下,可以启用多进程加速大规模数据的处理过程。本节以demo展示,输入1000个数组成的列表,以列表的形式对应输出其平方结果。定义基础func功能函数:输入一个数,输出其平方结果。开启10个进程,每个进程执行一遍func函数。设置1000次循环,每次循环调用一个进程,执行一步func功能。import multiprocessing as mpdef func(x): return x**2def generate_data(size): .原创 2020-11-18 20:18:56 · 189 阅读 · 0 评论 -
mac下python anaconda根据项目建立虚拟环境
1. 新建虚拟环境创建环境conda create -n linenet python=3.5进入环境source activate linenetconda activate linenet退出环境source deactivateconda deactivate列出环境conda env listconda info --envconda info -e删除环境conda remove -n linenet --all安装模块conda install lx原创 2020-10-26 15:37:44 · 642 阅读 · 1 评论 -
spark+scala 编程基础知识学习总结
// import import Utils.SparkUtilimport breeze.linalg.DenseMatriximport org.locationtech.jts.simplify.DouglasPeuckerSimplifierimport com.sankuai.roadfusion.algorithms.MaximalNearestSublineimport com.sankuai.roadfusion.utils.CoordinateTransformUtilimp.原创 2020-09-30 15:50:59 · 811 阅读 · 1 评论 -
python调用terminal命令(os.system/os.popen)及踩坑
自动化流程中常常需要用python调用terminal命令实现全流程自动化运行本文介绍常用的两个函数:os.system/os.popenos.system用法: if os.path.exists(saved_root): print("del old and mkdir new {} !".format(saved_root)) os.system("rm -rf "+saved_root)os.system("mv dftile_sampl.原创 2020-06-24 12:36:19 · 3789 阅读 · 0 评论 -
骨架矢量化sknw源码研读
路网分割后得到region,提取骨架得到centerline,之后需要进行矢量化得到结点和边,进而转化成geojson格式进行生产。本文对矢量化函数库sknw源码进行研读,并改进源码使结点和边之间紧密连接。一、骨架提取并矢量化demofrom skimage.morphology import skeletonizefrom skimage import dataimport...原创 2020-04-28 20:33:36 · 1611 阅读 · 3 评论 -
python pyplot 可视化之绘制柱状图
可视化操作是工程师必备技能。在算法开发中,可视化能够辅助调试。本文对pyplot绘制柱形图做记录。今天我欲对se_net中权重的学习情况进行可视化研究,从而判断出哪个通道/特征占据主导因素。其中使用pyplot进行可视化。jupyter notebook代码如下:%matplotlib inline%config InlineBackend.figure_format = 'svg...原创 2020-04-26 14:53:13 · 8043 阅读 · 0 评论 -
简述cpu/gpu/tpu的区别和工作原理
在深度学习的训练中,我们经常会考虑到效率问题,那么通常所说的cpu/gpu/tpu为什么会有着逐级加速的功能呢,本文进行简单介绍。机器之心pro有篇文章,介绍的很详细,参考链接:https://baijiahao.baidu.com/s?id=1610560990129941099&wfr=spider&for=pc ,本文对其进行概述。0.神经网络计算的本质以fc...原创 2020-04-21 10:49:14 · 4539 阅读 · 0 评论 -
Python编程:字符串转换问题
我们将列表或是数组以字符串的形式保存至txt/csv文件时,通常需要将当前数据结构转化至字符串的形式。如:list = [....]str(list)但是这种操作会带来数据隐患,解决方案如下:>>> arr = [x for x in range(2019,19941202)]>>> print(len(arr))19939183&g...原创 2019-01-02 11:31:29 · 245 阅读 · 0 评论 -
LaTex制作表格
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Grace_0642/article/details/79692593 </div> <div id="content_view...转载 2019-01-08 10:49:24 · 7948 阅读 · 2 评论 -
tensoflow迁移学习之finetune
在迁移学习中,fine tune是其中一类:将预训练模型参数导入目标模型中作为初始化参数,整体进行训练,新增的网络层参数采用随机初始化。 该方法适用于目标任务的数据集充足的情况下,此时过拟合程度低。那么如何加载部分参数作为初始化参数?我们采用模型复现的方式导入图,而非加载tf.train.import_meta_graph()一般实验情况下保存的时候,都是用的saver类来保存,如下...原创 2019-01-24 11:35:41 · 246 阅读 · 0 评论 -
Python程序打包为可执行文件(.exe)
本文目的:Windows下自己制作一些python小程序,想给未安装编程环境的用户使用,需要将.py文件转化为.exe。方法:安装pywin32:pip install pywin32 安装Pyinstaller:pip install pyinstaller pyinstaller -F myfile.py-F 表示生成单个可执行文件 -w 表示去掉控制台窗口,这在GUI界面...原创 2019-02-16 13:58:08 · 620 阅读 · 0 评论 -
python快速上手之多线程threading
多线程处理可以加速程序,本文介绍Python的多线程模块threading。1.添加线程导入模块:import threading获取已激活的线程数threading.active_count()# 2查看所有激活的线程信息,输出的结果是一个<_MainThread(...)>带多个<Thread(...)>。threading....原创 2019-02-22 20:44:19 · 362 阅读 · 0 评论 -
python快速上手之Multiprocessing多进程(让多核计算机发挥真正的作用)
上一篇博客里对多进程进行介绍https://blog.csdn.net/qq_38742161/article/details/87885103,多进程 Multiprocessing 和多线程 threading 类似, 他们都是在 python 中用来并行运算的. 不过既然有了 threading, 为什么 Python 还要出一个 multiprocessing 呢? 原因很简单, 就是用...原创 2019-02-22 21:14:00 · 6872 阅读 · 1 评论 -
python多核计算:多进程之进程池Pool与共享内存
进程池就是我们将所要运行的东西,放到池子里,Python会自行解决多进程的问题.Pool和之前的Process(https://blog.csdn.net/qq_38742161/article/details/87885424)的不同点是丢向Pool的函数有返回值,而Process的没有返回值。有了池子之后,就可以让池子对应某一个函数,我们向池子里丢数据,池子就会返回函数返回的值。首先i...原创 2019-02-22 21:27:30 · 5503 阅读 · 0 评论 -
使用python将多张图片拼接成大图
版权声明: https://blog.csdn.net/u014483914/article/details/83413009 </div> <link rel="stylesheet" href="https://csdni...转载 2019-02-23 20:47:34 · 4980 阅读 · 0 评论 -
tensorflow 读取机制及代码分析
参考:十图详解tensorflow数据读取机制(附代码) - 何之源的文章 - 知乎 https://zhuanlan.zhihu.com/p/27238630在学习tensorflow的过程中,有很多小伙伴反映读取数据这一块很难理解。确实这一块官方的教程比较简略,网上也找不到什么合适的学习材料。今天这篇文章就以图片的形式,用最简单的语言,为大家详细解释一下tensorflow的数据读取机...原创 2019-03-06 17:16:26 · 186 阅读 · 0 评论 -
剑指offer之重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。tips:前序首字符为整棵树的根节点,找到其在中序中的位置即可判别根节点的左右子树,采用递归思路,代码如下。# -*- coding:...原创 2019-04-04 10:15:49 · 110 阅读 · 0 评论 -
Leetcode:128最长连续序列
给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为O(n)。示例:输入:[100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是[1, 2, 3, 4]。它的长度为 4。思路:时间复杂度为O(n),排除排序;以开辟空间来节约时间,引入哈希表,一次遍历得到数组各个位置对应的连续序列长度。即键:数组的元素,值:连续序列长度。分...原创 2019-03-26 20:12:55 · 145 阅读 · 0 评论 -
Leetcode:20 有效的括号
给定一个只包括'(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false...原创 2019-03-26 23:31:53 · 122 阅读 · 0 评论 -
Leetcode:34二分法查找之在排序数组中查找元素的第一个和最后一个位置
本文对二分法查找及其变形做一个总结。给定一个按照升序排列的整数数组nums,和一个目标值target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是O(logn) 级别。如果数组中不存在目标值,返回[-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例2:...原创 2019-03-27 11:18:19 · 681 阅读 · 0 评论 -
Leetcode28字符串匹配之KMP算法
KMP算法要解决的问题就是在字符串(也叫主串)中的模式(pattern)定位问题。说简单点就是我们平时常说的关键字搜索。题目描述:实现strStr()函数。给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1。示例 1:输入: haystac...原创 2019-04-01 17:30:55 · 537 阅读 · 0 评论 -
宽度优先打印二叉树
题目描述1.从上往下打印出二叉树的每个节点,同层节点从左至右打印。([1,2,3,4,5,6,],无需保存行号)2.有一棵二叉树,请设计一个算法,按照层次打印这棵二叉树。([[1][2,3],[4,5,6]],按照层数打印)给定二叉树的根结点root,请返回打印结果,结果按照每一层一个数组进行储存,所有数组的顺序按照层数从上往下,且每一层的数组内元素按照从左往右排列。保证结点数小于等...原创 2019-04-01 22:04:09 · 216 阅读 · 0 评论 -
树的遍历:前、中、后序、广度优先
本文介绍树的遍历方式:前序遍历、中序遍历、后序遍历已经广度优先遍历0.举例比如上图二叉树遍历结果 前序遍历:ABCDEFGHK中序遍历:BDCAEHGKF后序遍历:DCBHKGFEA1.先序遍历:leetcode144:# Definition for a binary tree node.# class TreeNode:...原创 2019-04-02 14:46:09 · 477 阅读 · 0 评论 -
Leetcode:15 三数之和
给定一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c ,使得a + b + c =0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]tips:三个...原创 2019-04-08 17:34:18 · 89 阅读 · 0 评论 -
python编程之NMS
非极大值抑制(NMS)NMS的算法步骤如下:# INPUT:所有预测出的bounding box (bbx)信息(坐标和置信度confidence), IOU阈值(大于该阈值的bbx将被移除)for object in all objects: (1) 获取当前目标类别下所有bbx的信息 (2) 将bbx按照confidence从高到低排序,并记录当前confidence...原创 2019-04-08 22:30:04 · 716 阅读 · 0 评论 -
Leetcode:46/47 全排列
46. 给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]tips:分治思想,先固定首位元素,首位元素的选择可以有len(nums)种,即我们可以依次将首元素与第0 至len(nums)-1依次调换,得...原创 2019-04-15 16:30:38 · 72 阅读 · 0 评论