Python
Python基础
流浪德意志
千里之行始于足下!
展开
-
python-opencv计算重叠矩形面积IOU
计算boundingbox之间的重合面积。最后一个维度是角度(degree)原创 2022-11-23 18:56:34 · 2087 阅读 · 0 评论 -
Ubuntu18.04安装python-pcl
必须安装对应的python_pcl-0.3.0rc1-cp37-cp37m-linux_x86_64.whl。默认安装libpcl-dev默认pcl版本1.8。安装的版本不对会提示错误,例如。系统Ubuntu18.04。python版本3.7。原创 2022-10-29 21:14:57 · 889 阅读 · 0 评论 -
python读取和解析xml文件
【代码】python读取和解析xml文件。原创 2022-10-23 15:36:09 · 446 阅读 · 0 评论 -
BEVDet视觉检测方案
github资源 源码解读。原创 2022-10-07 23:02:48 · 524 阅读 · 0 评论 -
错误ValueError: Buffer dtype mismatch, expected ‘float32_t‘ but got ‘double
PCL库调用发生错误原创 2022-10-07 11:33:51 · 996 阅读 · 0 评论 -
根据平面方程拟合生成平面三维点云
【代码】根据平面方程拟合生成平面三维点云。原创 2022-10-07 10:12:40 · 445 阅读 · 0 评论 -
PCL手动生成点云PointCloud并体素过滤VoxelFilter
实现生成三维点云并进行变换(RT)最后通过open3d显示。原创 2022-10-06 23:58:47 · 378 阅读 · 1 评论 -
open3d显示RGBD点云(rope3d数据集)
rope3d中同时有深度图,因此 可以创建rgbd图像点云。原创 2022-10-02 17:00:42 · 639 阅读 · 0 评论 -
python加载点云pcd和json文件
【代码】python加载点云pcd和json文件。原创 2022-10-02 15:51:07 · 637 阅读 · 0 评论 -
open3d显示rope3d标注内容
下面演示显示rope3d的标注内容,其他调用的库有pandaset geometry等。open3d是我发现比较好用且功能全面的3D库。原创 2022-10-02 14:52:30 · 384 阅读 · 0 评论 -
pytorch lightning攻略
Pytorch Lightning 完全攻略 - 知乎原创 2022-09-21 11:31:26 · 355 阅读 · 0 评论 -
panda dataframe多线程任务处理
这里的例子将开始日期和结束日期之前展开。线程数=cpu数量 速度提高n呗。原创 2022-09-18 18:52:02 · 1304 阅读 · 0 评论 -
conda环境中安装1秒安装秘籍
只需要加上一个参数就能1秒安装完成。无论是pip或者mim安装指令。原创 2022-08-25 22:38:59 · 985 阅读 · 0 评论 -
创建索引文件夹所有点云文件
通过glob索引所有文件和文件夹并按照文件名创建索引检查索引匹配后将文件重新存储原创 2022-06-03 22:06:48 · 184 阅读 · 0 评论 -
python-pcl点云显示
从pandaset中导入点云数据但是无法显示立体框 只能使用open3d#! /usr/bin/env python3# -*-coding:utf-8-*-import pclimport pcl.pcl_visualizationfrom pandaset import DataSet, geometryimport numpy as npimport pandasdataset_root = "/media/ning/DataSet6/nuscenes/pandaset"d原创 2022-04-30 11:33:18 · 2261 阅读 · 0 评论 -
Docker中安装python-pcl库
Docker环境如下:Ubuntu 18.04CUDA 11.0pytorch 1.8python 3.6.9首先安装Python-pcl$ sudo apt-get update -y$ sudo apt-get install libpcl-dev -y此时python中import pcl还是无法使用还需要pip3安装pcl库从我上传的资源库中下载并安装:pip3 install python_pcl-0.3.0rc1-cp36-cp36m-linux原创 2022-04-28 22:05:32 · 1994 阅读 · 0 评论 -
ImportError: No module named ‘xxx‘ python无法找到工作目录下
在目录下添加空文件__init__.py 这样文件夹 就被作为包处理 也就能找到了!参考:实战教程:VScode中误报(import-error)解决方案_qfluohao的博客-CSDN博客_vscode使用import报错原创 2022-03-11 11:46:31 · 944 阅读 · 0 评论 -
python对csv文件进行数据读写操作汇总
csv文件二进制写入模式 wb(如果已创建将清空数据,谨慎使用!)二进制添加模式 ab二进制读取模式 rb写入的话可以直接按照二维数组写入,第一行写入每列的名称以便参考#!/usr/bin/env pythonimport rospyimport numpy as npimport matplotlib.pyplot as pltfrom datetime import datetimeimport rospkgimport csvimport sysif __nam.原创 2021-04-07 00:37:40 · 664 阅读 · 3 评论 -
python快捷运算:矩阵和数组块的叠加运算
如果需要对矩阵或者数组的部分元素进行更新,比如与另外一个数组进行算数运算,但是大小不同numpy提供了解决方案:#!/usr/bin/env pythonimport numpy as npfrom math import *n_map = [[0, 100, 0, 10], [30, 20, 80, 50]]n_map = np.array(n_map)add = [-10,-5]print n_map[0,2:4]n_map[0,2:4] += addpri原创 2021-04-06 02:24:55 · 698 阅读 · 0 评论 -
python快捷运算:对数组进行条件判断
经常需要对二维数据进行条件判断并计数,为了避免按索引进行比较的低效率,python提供了功能强大的数组逻辑运算。下面是一个简单的例子,可以根据实际情况进行扩展。#!/usr/bin/env pythonimport numpy as npfrom math import *n_map = [[0, 100, 0, 10], [30, 20, 80, 50]]t_map = [[10, 20, 30, 40], [70, 80, 20, 50]]occupi原创 2021-04-06 01:52:45 · 1605 阅读 · 0 评论 -
python numpy从坐标序列中计算累计移动距离
也是从其他程序中学习得到计算距离:position=[]通过list来存储坐标xy, position.append([x,y])position = np.array(position) 转换成数组dist_arr = np.concatenate((np.array([0]), np.cumsum(np.linalg.norm(position[:-1] - position[1:], axis=1))))dist_arr为累计距离和x_norm=np.linalg.norm原创 2021-04-05 06:03:49 · 502 阅读 · 0 评论 -
rospy节点接收数据matplotlib绘图并发布到rostopic
#!/usr/bin/env pythonimport rospyimport numpy as npimport PIL.Imagefrom numpy.linalg import normimport matplotlib.pyplot as pltimport matplotlib.patches as patchesfrom matplotlib.patches import Polygonfrom scipy.ndimage.morphology import distance_.原创 2021-02-26 22:23:41 · 1219 阅读 · 1 评论 -
Unable to correct problems, you have held broken packages无法安装libignition-math6-dev
sudo apt-get install libignition-math6-dev出现错误!Reading package lists... DoneBuilding dependency treeReading state information... DoneSome packages could not be installed. This may mean that you haverequested an impossible situation or if you are u原创 2021-02-17 04:10:49 · 379 阅读 · 0 评论 -
virtualenv: error: unrecognized arguments: --no-site-packages
使用virtualenv --version,看到自己的版本大于20,就可以将如下这段删除:export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'我碰到的情况下:user_makefile报错找到对应文件后,找到no-site-packages删除即可!因为从版本20开始,默认就是’--no-site-packages‘了。...原创 2021-02-17 01:29:55 · 250 阅读 · 0 评论 -
git错误pathspec did not match any file(s) known to git及相关操作
Git error:pathspec did not match any file(s) known to git本地文件与远程无对应:我这里的情况是在执行./update_nrp update --allgit pullAlready up to date.git fetchgit branch -a* master remotes/origin/HEAD -> origin/development remotes/origin/IBA1 remotes/orig..原创 2021-02-15 10:15:30 · 22670 阅读 · 0 评论 -
python经典数据结构与算法之双指针 碰撞指针 快慢指针
双指针之碰撞指针也就是两个指针,分别指向头和尾,向中间靠拢 直到碰到一起,程序终止,移动过程中按照一定的规则进行移动;python中一般用List或字符串做数据比如以下程序(来源Github,地址最下)用来解决:(Leetcode 167) 地址:https://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted/给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值index...原创 2020-11-09 05:06:09 · 286 阅读 · 0 评论 -
python面向对象编程高级篇之枚举类Enum
我们可以定义月份,比如from enum import EnumMonth = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'))for name, member in Month.__members__.items(): print(name, '=>', member, ',', member.value)Month下有12个原创 2020-11-05 02:22:28 · 909 阅读 · 0 评论 -
python面向对象编程高级篇之定制类__getitem__ __getattr__ __call__
__getitem__该方法将对象生成可以索引的list,这样就可以直接通过下标索引了;例如class Fib(object): def __getitem__(self, n): a, b = 1, 1 for x in range(n): a, b = b, a + b return a>>> f = Fib()>>> f[0]1>>> f[1]1&原创 2020-11-05 02:11:02 · 289 阅读 · 0 评论 -
python面向对象编程高级篇__slots__ @property 多重继承
python语言中我们可以随时给实例增加新的属性和方法class Student(object): pass>>> s = Student()>>> s.name = 'Michael' # 动态给实例绑定一个属性>>> print(s.name)Michael>>> def set_age(self, age): # 定义一个函数作为实例方法... self.age = age...>&g原创 2020-11-05 01:58:12 · 153 阅读 · 0 评论 -
python面向对象编程 类与实例 继承与多态 isinstance
class Student(object): def __init__(self, name, gender): self.__name = name self.__gender = gender def set_gender(self, gender): if gender == 'male': self.__gender = gender elif gender == 'female': .原创 2020-11-04 23:03:20 · 218 阅读 · 0 评论 -
python的模块引用和变量命名
#!/usr/bin/env python3# -*- coding: utf-8 -*-' a test module '__author__ = 'Michael Liao'import sysdef test(): args = sys.argv if len(args)==1: print('Hello, world!') elif len(args)==2: print('Hello, %s!' % args[1]) .原创 2020-11-04 21:09:09 · 340 阅读 · 1 评论 -
python函数编程 返回函数 匿名函数 装饰器 偏函数
返回函数函数的返回对象可以是一个函数,返回时不立即执行,而是调用返回对象的时候再执行def lazy_sum(*args): def sum(): ax = 0 for n in args: ax = ax + n return ax return sum>>> f1 = lazy_sum(1, 3, 5, 7, 9)>>> f2 = lazy_sum(1, 3, 5,原创 2020-11-04 20:24:18 · 113 阅读 · 0 评论 -
python高阶函数用法之filter sorted
filter的作用就是过滤器或者滤波器,按照返回的条件真假来筛选序列list#回数是指从左向右读和从右向左读都是一样的数,例如12321,909。请利用filter()筛选出回数:def is_palindrome(n): str_ = str(n) str_r = str_[::-1] return int(str_r)==n# 测试:output = filter(is_palindrome, range(1, 1000))print('1~1000:', list原创 2020-11-04 17:21:57 · 285 阅读 · 0 评论 -
python高阶函数用法之map reduce
map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。>>> def f(x):... return x * x...>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])>>> list(r)[1, 4, 9, 16, 25, 36, 49, 64, 81]>>> list(map原创 2020-11-04 07:07:33 · 185 阅读 · 0 评论 -
python高级特性总结之切片 迭代 生成器 迭代器
切片:>>> L = list(range(100))>>> L[0, 1, 2, 3, ..., 99]>>> L[:10][0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> L[-10:][90, 91, 92, 93, 94, 95, 96, 97, 98, 99]>>> L[10:20][10, 11, 12, 13, 14, 15, 16, 17, 18, 19]#每隔原创 2020-11-04 05:53:09 · 155 阅读 · 1 评论 -
python递归函数的用法
def fact(n): if n==1: return 1 return n * fact(n - 1)递归函数的使用能够简化程序,但同时面对可能出现栈溢出的问题解决方案是:解决递归调用栈溢出的方法是通过尾递归优化,事实上尾递归和循环的效果是一样的,所以,把循环看成是一种特殊的尾递归函数也是可以的。尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。这样,编译器或者解释器就可以把尾递归做优化,使递归本身无论调用多少次,都只占..原创 2020-11-04 02:59:34 · 349 阅读 · 1 评论 -
python函数的参数:位置参数,默认参数,可变参数,关键字参数,命名关键字参数
首先要清楚,python中的典型数据结构有tuple, list, set 和 dictionarytuple = [1, 2, 3]list = (1, 2, 3)dictionary = {‘Michael’: 95, 'Bob': 75, 'Tony':85}#简化可变参数的调用方法def calc(*numbers): sum = 0 for n in numbers: sum = sum + n * n return sum可变参数能原创 2020-11-04 02:09:05 · 384 阅读 · 0 评论