自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 资源 (1)
  • 收藏
  • 关注

原创 常用的opencv图像处理方法

灰度图作用:去除图像的色彩信息,减少图像所含的信息量,减少图形处理的计算量。图像平滑作用:使用高斯滤波,中值滤波等使图像整体变平滑,去除图像细节特征,去除影响图像特征的噪声。图像二值化作用:显示出图像的轮廓直方图作用:直观表现图像的对比度和亮度特征HDR将若干张同角度不同曝光度的图像进行融合,得到满足观感的照片...

2022-05-23 19:31:16 460

原创 python对字符串使用min和max

今天日常刷题,看到了一个最长公共前缀比较高级的解法。题目如下:在评论区看到一个比较聪明的解法:class solution(): def st(strs): if not strs: return "" str1 = min(strs) str2 = max(strs) for i in range(len(str1)): if str1[i] != str2[i]: return str1[:i] return str1这里对字符串进行比较,使用min

2022-05-18 17:02:39 3151 1

原创 SQL窗口函数

作用先看一下窗口函数的结构<窗口函数> over (partition by <字段1> order by <字段2>)partition,分组;order,排序所以窗口函数的主要作用就是用来分组和排序用法<窗口函数>的位置,既可以放窗口函数,也可以用聚合函数窗口函数:rank(),row_number,dense_rank()等聚合函数:sum(),count(),min(),max(),avg()等区别rank()SELECT *,

2021-11-24 15:44:31 907

原创 SQL执行顺序

from→join→on→where→group by→having→select→distinct→order by→limitfrom:打开哪个表join:连接哪个表on:连接字段where:条件判断having:where不能和聚合函数一起用,having跟在where后面select:要哪些字段distinct:去重order by:排序limit:取结果...

2021-11-23 17:24:25 1651

原创 数据仓库-学习理解

概要:数据仓库是一个过程而不是一个项目;是一个环境而不是一件产品。数据仓库将多个数据源的数据按照一定主题集成起来,经过抽取、清洗、转换。整合后的数据不允许随便修改,定期更新,这个过程叫做ETL:抽取(extract)、转换(transform)、加载(load)。数据仓库大致流程ODS层:外部数据源ETL到数仓里最原始的数据DWD层:对ODS层中的表按一定主题进行划分和加工,内容还是明细数据DWS层:对DWD层数据进行汇总ADS层:数据应用层,分析报表等。DM层:data mart,数据集

2021-11-22 18:46:07 2573 2

原创 图像处理算法-高斯滤波

高斯滤波(Gaussian filter)是对图像进行加权平均的过程,每一个像素点的值由其本身和领域内其他像素值经过加权平均后得到,类似于卷积。高斯滤波器均值滤波器是取滤波器窗口内的像素均值作为输出,高斯滤波后的图像被平滑的程度取决于标准差,它输出的是领域像素的加权平均,同时离中心越近的像素权重越高。因此,高斯滤波相对于均值滤波的平滑效果更柔和,对边缘的保留也更好。步骤1.移动卷积核到每个像素点上2.将该像素点以及周围像素点的像素值作为权重乘以卷积核3.加权作为输出测试原图结果图代码

2021-11-17 16:55:35 3376

原创 图像处理算法-直方图

图像的亮度值分为0~255共256个值,数字越大颜色越亮,数字越小颜色越暗。“左黑右白”坐标轴横坐标从左到右为纯黑到纯白的过渡,统计了每一个颜色强度所具有的像素个数。直方图的作用1.判断照片中是否过曝光或者欠曝光过曝光:图像如果过亮,直方图的分布会聚集在最右侧,由于相机硬件的原因会导致亮度过高的像素以纯白色的形式记录在照片里。处理方法有:降低曝光,缩小光圈,降低ISO,加快快门速度来减少曝光时间。欠曝光:图像如果过暗,则完全相反。2.判断照片亮度反差是否超过相机的宽容度左侧接触边缘,右

2021-11-17 15:47:46 1971

原创 机器学习-决策树

决策树既可以做分类也可以做回归分类以树的方式实现分类的结果,每个决策结点实现一个分类的函数,每个叶子结点表示分类结果。熵/基尼系数(Gini)熵代表了物体内部的混乱程度,数据越复杂,熵越大。构造决策树构造决策树的思路是随着深度加深,结点的熵迅速降低,降低得越快越好,这样可以得到一棵最矮的决策树。算法ID3:信息增益C4.5:信息增益率...

2021-11-15 19:30:02 763

原创 sql关联子查询

原始表:查询语句:SELECT product_type,product_name,sale_priceFROM product p1WHERE sale_price > (SELECT AVG(sale_price) FROM product p2 WHERE p1.product_type = p2.product_type GROUP BY product_type)查询结果:结果显示的是每种类别下的商品中高于该类别平均价格的商品执行顺序:1.执行第二行的FROM

2021-09-13 16:58:44 105

原创 pandas中文速查

下文df和s的含义df:任意的Pandas DataFrame对象s:任意的Pandas Series对象importimport pandas as pdimport numpy as np导入数据pd.read_csv(filename):从CSV文件导入数据pd.read_table(filename):从限定分隔符的文本文件导入数据pd.read_excel(filename):从Excel文件导入数据pd.read_sql(query, connection_object)

2021-09-06 17:59:44 258

原创 RFM模型学习

RFM模型R:最近一次消费 (Recency)F:消费频率 (Frequency)M:消费金额 (Monetary)简单的理解就是针对客户不同的RFM值进行不同的营销策略。整个过程分为几个步骤:数据提取→用户RFM打分→根据打分给用户分类→针对不同的分类提供不同的营销方案针对业务主要有两个难点,分别在第二个步骤和第四个步骤。用户RFM打分,需要对业务理解深刻,对R值,F值和M值分区间打分,区间的划分需要针对不同业务去指定不同的指标。提供营销方案,需要针对业务和实际策略有了解,才能针对性地产

2021-09-03 14:39:01 162

原创 starGANv2代码复现

github:statganv2服务器配置为Ubuntu 16.04.6,CUDA版本10.0,测试用的是旧的AFHQ数据集1.下载预训练网络,可以按照git的步骤来,但是有几个需要翻墙下载,比较麻烦,整理好的网盘链接:链接:https://pan.baidu.com/s/13aEPH82Yf2H9HMEYny0fdw 提取码:412c ##AFHQ数据集,解压后放到根目录下data文件夹里链接:https://pan.baidu.com/s/1oleMcsIVUTx6dYFIEwRw8A 提

2021-07-06 15:10:41 2367 12

原创 [数据分析]数学仿真法计算原神抽奖概率

使用数学仿真法计算出真实抽中五星角色的概率import randomnum = 0 ##统计中奖次数rate = 0 ##记录保底数据for j in range(1,600000): ##仿真60万次抽奖 if random.randint(1,1000)<=6: ##如果抽中了 num += 1 ##中奖次数+1 rate = 0 ##保底归0 elif rate!= 90: ##如果没抽中且没到保底 rate +.

2021-07-02 13:50:46 946

原创 pandas常用语句

import pandas as pdsheet_data = pd.read_excel("./文件名")sheet_data = pd.read_excel("./文件名",sheet_name = "表名")sheet_data.index ##查看索引数sheet_data.shape ##查看数据形状sheet_data.head(8) ##读取前8行,默认为5sheet_data.tail(8) ##读取后8行,默认为5df1 = pd.DataFrame({'a':[1,2,3]

2021-06-28 14:46:59 279

原创 标准化操作AdaIN

常用归一化操作1.Batch NormalizationBatch Normalization就是对一个batch中的数据进行标准化,就是每一个值减去batch的均值,除以batch的标准差.2.Instance NormalizationIN的操作跟BN类似,就是范围从一个batch变成了一个instanceAdaINAdaptive Instance Normalization在starGANv2里面可以理解为,先去风格化(减去自身均值再除以自身标准差),再风格化到style image的

2021-06-24 15:23:32 213

原创 py摩尔投票算法

###题目思路这道题用摩尔投票算法做,先设定一个summ为0统计个数。再初始化一个变量num。从第一个数开始,遇到和它一样的数就加1,不一样就减一。最后留下的肯定是众数。但是有一个前提,当summ为0时,遇到不同的数不减1,而是num变为这个数。逻辑遍历数组,先判断summ是否为0,为0的话则赋值给num;不为0的话进行判断:当前数是否等于num,相等则summ+1,不等则summ-1代码class Solution: def majorityElement(self, nums:

2021-06-23 15:12:59 109

原创 py返回某集合的所有子集

题目思路一开始的思路像是数学的排列组合,通过切片生成子集,但是考虑了一下还是比较复杂,在集合比较长的时候很难去设计算法。正确的思路:比如输入的nums是[1,2,3]集合[]的子集是: [] 数量为1集合[1]的子集是:[],[1] 数量为2集合[1,2]的子集是:[],[1],[2],[1,2] 数量为4集合[1,2,3]的子集是:[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3] 数量为8从上往下看,集合每增加一个元素,新的子集的前一

2021-06-20 15:08:24 182

原创 python链表反转

题目思路题目的重点是:实现把一个结点直接插在头结点之前。直接去插入实现起来很复杂,而且删除结点也比较麻烦,于是先设定一个空指针rev = None,通过遍历链表一步步插入。代码# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def reve

2021-06-04 16:50:54 91

原创 python相交链表

题目思路直接去比较肯定是不可行的,因为不知道什么时候访问A的下一个指针和B的下一个指针。数学思路:设立两个指针A和B分别等于headA和headB,A遍历一遍链表A走的路程设置为a,B遍历一遍链表B走的路程设置为b,如果A和B有重合,设重合的部分长度为c,那么指针A遍历完A再遍历B走到相交点的路程为a+b-c,同理指针B走完B再走A走到相交点的路程也是a+b-c,路程是一样的,所以可以同时走,设定条件A走完A再走B,B走完B再走A,直到A=B相遇的时候,这个点即为相交点。如果没有相交点,A走完A和B的

2021-06-04 13:48:16 289

原创 [图像处理]彩色图片转手绘效果

效果:转 手绘效果图:代码:from PIL import Imageimport numpy as npa = np.asarray(Image.open('./1.png').convert('L')).astype('float') ##修改这里的输入图片路径为自己的图片路径depth = 10. # (0-100) # 数字越大颜色越深grad = np.gradient(a) # 取图像灰度的梯度值grad_x, grad_y = grad # 分别取横纵图像梯度值

2021-05-31 14:04:54 162

原创 python查看图片的拍摄时间和拍摄位置

前提:图片传到电脑的时候一定要原图,否则会压缩这些信息。安卓手机测试通过微信发原图可以保留这些信息。苹果手机测试通过微信发原图也会去掉这些信息,我是通过邮箱文件中转站传到电脑的,或者直接数据线插上来拷贝。代码如下:需要更改里面的图片路径import exifreadimport reimport jsonimport requestsimport os #转换经纬度格式def latitude_and_longitude_convert_to_decimal_system(*arg):

2021-05-17 11:29:29 996

原创 解决conda虚拟环境下pip的问题

在服务器上面创建虚拟环境时,pip总是把包安装到总环境里的问题解决办法:在pip前面加上python -meg:python -m pip install tensorflowpython -m pip list

2021-05-15 10:48:32 1640

原创 win10本地django博客运行

两年前用django做过一个博客,最近想继续捡起来学习python后端,找了一个开源的django源码,在自己的win10电脑上run了一下,记录一下过程以及遇到的问题和解决的方法。项目地址:https://gitee.com/lylinux/DjangoBlog自己用的python版本是3.7.4mysql版本是5.7.25,下载地址:mysql-5.7.25-winx64安装过程可以参考我的另一篇文章win7配置mysql略有不同的地方是配置mysql时需要在根目录下创建一个文件 my.i

2021-05-10 21:08:24 7670 12

原创 [递归]二叉树的三种遍历

前序遍历遍历顺序:中→左→右# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: def preorderTraversal(self,

2021-05-08 15:55:46 81 2

原创 [递归遍历二叉树]路经总和

题目思路不是二叉排序树,那肯定是要遍历整棵树,最常用的方法就是递归,涉及到计算和的问题,如果每次递归把和传到下一个递归中,则需要额外传入一个参数。参考了答案,每次递归的时候减去当前结点的值,这样递归过后只需要判断当前结点是否等于剩下的值。代码# Definition for a binary tree node.# class TreeNode(object): ##定义结点的数据结构# def __init__(self, val=0, left=None, right=None):

2021-05-08 14:22:54 83 1

原创 python冒泡排序

冒泡排序思路冒泡排序的思路就是遍历数组,每个小的值往上浮,每次都会有一个最大值沉底。循环遍历n次实现排序。代码def bubblesort(array): ## 定义冒泡排序方法 for i in range(len(array)): ##遍历 for j in range(len(array)-i-1): ##遍历第二次 if array[j] > array[j+1]: ## > 换成 < 实现从大到小排序

2021-05-04 19:37:16 81 1

原创 python快速排序

快排的思路快速排序的思路是拿一个值作为枢纽(通常用数组最后一个数),遍历数组,依次与枢纽进行比较,每次比较后把比枢纽小的数都放在枢纽前,比枢纽大的数放在枢纽后。利用递归分别对两边进行排序。快速排序是原地排序。设置枢纽为arr[high],两个指针初始化时一个指向数组第一个位置的下标-1,一个利用循环对数组进行遍历。代码def partition(arr,low,high): i = low-1 ##设置第一个指针指向数组第一个位置下标减一 pivot = arr[high]

2021-05-03 17:32:47 65

原创 [矩阵操作]旋转图像

题目思路两个操作:①矩阵主对角线翻转②矩阵垂直镜像翻转顺时针90°:先①后②逆时针90°:先②后①这道题要求顺时针翻转90°,即将矩阵先沿对角线翻转再垂直镜像翻转。代码class Solution: def rotate(self, matrix: List[List[int]]) -> None: n = j =len(matrix) - 1 for i in range(n): for k in range(n+1

2021-04-25 20:29:26 260 1

原创 python的四种数据结构

列表lista = [1,2,3] ##数组a = ['b','c'] ##初始化a[1] = 'd' ##修改a.append('d') ##在列表末尾追加元素a.pop() ##删除列表末尾元素a.insert(2,'d') ##在指定下标插入元素a.remove('b') ##移除列表中某个元素del a[1] ##删除下标为1的元素a.sort() ##升序排列a.sort(reverse = True) ##倒序排列len(a) ##获取列表长度##循环创建链表

2021-04-20 17:21:36 185

原创 [双指针]删除链表的倒数第N个结点

题目思路因为有可能删除头结点,所以初始化一个指向head的结点是必须的。first = ListNode(0,head)因为不能直接获取到链表的长度,普通的思路是先遍历一次获取到链表长度,再遍历一次进行删除操作,但是这样违背了题目一次遍历的考察点,所以设定双指针,快指针走到尾部的时候正好比慢指针快n个位置,删除慢指针的下一个结点即可。因为要考虑到删除头结点的可能性,所以慢指针初始化时要等于first结点,先让快指针前进n个结点。代码# Definition for singly-linked

2021-04-19 11:14:02 98

原创 win7配置Mysql

windows7,以Mysql5.7为例。下载链接:mysql5.7.21解压到Y:\mysql目录下搜索cmd在搜索到的选项中以管理员身份打开cmd分别输入以下指令:Y:CD mysql\binmysqld --initialize-insecure ##初始化mysql,不设置密码mysqld -install ##安装mysqld一定要用管理员身份打开cmd,要不然会失败之后net start mysql如果这里提示启动失败的话,可能是已经有mysql服务启动了,占用了

2021-04-18 23:51:53 347

原创 K-means的python实现

K-means:K均值聚类算法将数据预处理分为K组,并随机设定K个初始聚类中心。计算各个点到每个聚类中心的距离,把每个点分配到最近的聚类中心,每个聚类中心和分配给它的点成为一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。重复执行这个操作直到没有任何样本可以被分配或者聚类中心不再变化。import timefrom copy import deepcopyimport numpy as npimport pandas as pdfrom matplotlib impo

2021-04-09 13:43:25 116

原创 [异或运算]只出现一次的数字

题目思路刚开始的想法是排序之后用栈,最后栈里面剩什么就是什么。但是时间复杂度很高,创建栈也会用到额外空间。官方给的答案是异或运算,两个数a和b,对a和b做异或就是a^b,规则如下a = 1b = 2c = 2相同为0 ## b^c = 0 不同为1 ## a^b = 10与任何数做异或等于任何数 ## 0^a = a满足交换律和结合律 ## a^b^c = a^(b^c)=a^0=a代码class Solution(object): def singleNumber

2021-04-05 20:58:59 97 4

原创 [isalnum()方法]验证回文串

题目思路因为要考虑大小写问题和符号的问题,要用到两个方法:isalnum()方法,判断字符串里面是否只包含数字和字母。lower()方法,将字符串中的所有大写字母替换为小写。(或者用upper()方法,全部转化为大写)放到一个新数组里面反转比较即可:str[::-1]代码class Solution(object): def isPalindrome(self, s): """ :type s: str :rtype: bool

2021-04-05 13:54:35 94

原创 [贪心算法&动态规划]买卖股票的最佳时机II

题目思路1——贪心算法贪心算法个人理解就是局部最优解,在这道题的理解就是,“有钱赚就卖”,如果某一天的价格低于第二天,那么就当天买第二天卖,这道题有一个隐藏的条件就是"可以当天卖并且当天卖",即卖了之后再买是可以的,所以代码就很容易写了,一次遍历。代码1——贪心算法class Solution(object): def maxProfit(self, prices): """ :type prices: List[int] :rtype: i

2021-04-04 17:00:31 202 4

原创 [动态规划]买卖股票的最佳时机

题目思路某一天(n)卖出的最大利润 = max(前一天(n-1)卖出的最大利润,今天的价格-之前价格最低的一天的价格)这里动态规划的思路就体现在max()里面的第一项,一般的思路是已知今天的价格去遍历之前的价格求差值,取最大值。动态规划的优势体现在无需遍历之前的价格,只需要拿昨天出售的最大利润和今天出售的最大利润进行比较即可。代码minn = prices[0] ##先假设第一天的价格最低maxx = 0 ##初始最大利润为0for i in range(1,len(prices)

2021-04-03 21:43:35 84

原创 python输入多行数据

最近各大厂的春招都开始了,陆陆续续接触了几个大厂的笔试题,共同特征就是输入的数据都是多行数据,对于一个力扣刷题只刷easy的人,这个一开始还是有点蒙的,后来学习了一下,记录一下代码。while 1: a = [] ##定义空列表 s = input() ##每行的输入记为S,python2里面这个是raw_input sum = 0 if s: for i in s.split(): ##split是去掉S里面的空格,把s分成若干部分

2021-03-30 21:44:26 2758 1

原创 python列表分片

a = [1,2,3,4,5,6,7,8,9]a = a[:2] ##输出下标为2之前的列表print(a)result[1,2]a = [1,2,3,4,5,6,7,8,9]a = a[4:8] ##输出下标4到7的列表print(a)result[5,6,7,8]a = [1,2,3,4,5,6,7,8,9]a = a[4:8:2] ##输出下标4到7的列表,步长为2print(a)result[5,7]a = [1,2,3,4,5,6,7,8,9]a = a

2021-03-30 13:23:43 115

原创 [python解题]将有序数组转换为二叉搜索树

题目思路众所周知,二叉搜索树的中序遍历(左中右)是一个有序递增数列,高度平衡二叉树左右高度差不超过1,可以从数组中间取值作为根节点,把整棵树分成两部分,之后利用递归分别从左右两个区间取中间值作为左右结点,有点类似二分查找法。代码# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, val=0, left=None, right=None):# self.val

2021-03-25 19:36:22 229

原创 [python中等]删除排序链表中的重复元素 II

题目思路最开始的思路就是弄一个flag遍历这个链表的val,遇到一样的就把这两个结点都删除,但是遇到一个问题,怎么删除当前结点,如果当前结点是头结点怎么删。所以需要设置一个新的结点,让他的下一个结点指向head。看到一条评论说的很中肯代码# Definition for singly-linked list.# class ListNode(object):# def __init__(self, val=0, next=None):# self.val = val

2021-03-25 17:42:22 135

pdf转word可执行文件exe

打包了一个pdf转word的脚本,exe可执行文件,支持各版本windows系统

2021-11-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除