自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(115)
  • 资源 (3)
  • 收藏
  • 关注

原创 Leetcode题目:python 实现链表题目合集(边做边更新)

思路及注意点(新手走的弯路):1.一定要明确l1,l2链表是不可以在尾部加新节点的,因为最后一个指针值为None。2.保存结果的链表必须满足在尾部添加节点,因为进位的时候要加1,利用ListNode()可以完成动态添加节点。3.遍历2个链表,先走完的默认值为0,当另一个也走完的时候,一定要注意不要再加新节点了,此可结果链表的长度等于l1,l2中最长的那个。4.遍历完后,判断是否需要进位,进位则加一个新节点,并赋值为1。下面的程序是调试的所有代码。"=====================..

2022-04-22 08:01:14 759

原创 算法编程题总结——动态规划

1. 动态规划理论1.1 动态规划的思想:首先,动态规划最重要的是掌握他的思想,动态规划的核心思想是把原问题分解成子问题进行求解,也就是分治的思想。那么什么问题适合用动态规划呢?我们通过一个现实中的例子,来理解这个问题。大家可能在公司里面都有一定的组织架构,可能有高级经理、经理、总监、组长,然后才是小开发,今天我们通过这个例子,来讲讲什么问题适合使用动态规划。又到了一年一度的考核季,公司要挑选出三个最优秀的员工。一般高级经理会跟手下的经理说,你去把你们那边最优秀的3个人报给我,经理又跟总监说你把你

2020-08-27 20:28:13 2871

原创 【剑指Offer】全部题目 —— 通俗易懂的参考答案与解析(Python)

题目1:二维数组中的查找在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思想: 暴力解决class Solution: # array 二维列表 def Find(self, target, array): # write code here for row in range(len(array)): arr = array[row] # 对

2020-05-25 10:49:29 5905 3

原创 Python之pandas库DataFrame基本操作

参考资源:https://blog.csdn.net/sinat_29957455/article/details/79028730https://blog.csdn.net/cymy001/article/details/78275886目录一、创建一个DataFrame:1.1用字典dict,字典值value是列表list1.2用Series构建DataFrame1.3...

2019-08-04 15:48:04 19264

原创 大众点评美食爬虫案例

【代码】指定文件上传。

2024-01-23 20:34:40 599

原创 Linux深度学习:除基本命令操作外的实用操作

看完这一篇,再也不害怕linux奇怪的名词了,深入浅出,对非计算机专业的人来说,是很好的入门学习资料

2023-10-07 16:35:49 264

原创 ray并行计算时,如何确定异步函数返回值的数量?

ray分布式计算框架学习:返回值数量由执行者和调用者决定

2022-12-28 17:16:12 337 1

原创 python 多线程编程(线程同步和守护线程)

python 多线程编程:线程同步和守护线程

2022-11-15 17:31:57 1520

原创 win10创建不同python版本的虚拟环境

python安装虚拟环境

2022-11-14 14:18:29 968

原创 Leetcode题目:python实现二叉树展开为链表(先序遍历+ 树结构)

思路:1.明确单链表的顺序是先序遍历的结果:根左右,保存到result中。2.明确最终返回的不是链表,而是二叉树,只是树的左节点为空。3.遍历result中的树节点,依次的左子树为空,右子树为下一个结点。4.此时的root就是最终的二叉树。class Node: def __init__(self,value=None,left=None, right=None): self.value = value self.left = left ..

2022-05-05 21:00:00 721

原创 Leetcode题目:python实现反转链表(遍历+拼接+反转操作)

思路:1.left==right,返回原链表2.left <> right,添加虚拟头结点3.保存子链表的前一个指针和后一个指针,用于拼接反转后的子链表。# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution:..

2022-05-01 20:20:04 1113

原创 Leetcode题目:python实现分割链表(遍历+比较+拼接)

题目:分割链表思路:感觉题目的例子不是很好,最后的这组数据,很能反应题目中的要点:小于x的放到≥\geq≥x的前面。遍历链表的值,小于x的放一个链表,≥\geq≥x的放另一个链表,再拼接2个链表。class Solution: def partition(self, head: ListNode, x: int) -> ListNode: p=less=ListNode(0) q=more=ListNode(0) while h

2022-05-01 18:56:17 1127

原创 Leetcode题目:python实现删除排序链表中的重复元素(遍历+循环)

题目是不保留重复元素 def deleteDuplicates(self, head: ListNode) -> ListNode: dummy = ListNode(0) slow = dummy fast = head while fast != None: # 是否快进的标志 flag = False while fast.next !=None and

2022-05-01 15:32:18 997

原创 Leetcode题目:python实现 旋转链表(遍历+循环)

题目: 旋转链表思路:1.首先获取链表的长度,判断旋转次数k和长度的关系,得到实际旋转次数 k=mod(k,length)k = mod(k,length)k=mod(k,length)。2.对链表执行k次往右移动一次的操作。class Solution: def rotateRight(self, head: Optional[ListNode], k: int) -> Optional[ListNode]: if head == None or head.ne

2022-04-27 21:12:44 1271

原创 Leetcode题目:python实现K个一组翻转链表(遍历+拼接+反转操作)

题目:K 个一组翻转链表思想:遍历链表,计数k个后,记住K个结点的首尾节点传递给反转函数,返回反转后链表的首尾结点,再拼接到原来的链表.class Solution: def reverseKGroup(self, head: Optional[ListNode], k: int) -> Optional[ListNode]: count = 0 result = ListNode() result.next = head

2022-04-26 20:07:17 1012

原创 Leetcode题目:python实现合并两(K)个有序链表(链表遍历+比较操作)

题目:合并两个有序链表思路:1.当一个为空,另一个不为空时,直接返回。2.如果两个链表不为空,比较2个头结点,不确定谁是最终的头结点,需定义一个新链表保存结果。3.当移动指针一个为空,另一个不为空时,直接将不为空的指针返回给新链表。# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val#

2022-04-25 20:00:00 1346

原创 Leetcode题目:python实现两两交换链表中的节点(指针交换操作)

题目:两两交换链表中的节点思路(具体见下图):1.头节点会变化,所以要增加虚拟头节点p2.两两交换,1,2,3,4的顺序不能发生变化,先执行1和3 会产生环,陷入死循环。# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Soluti

2022-04-24 20:23:43 588

原创 Leetcode题目:python实现删除链表的倒数第N个结点(双指针操作)

题目:删除链表的倒数第N个结点思路:1.若链表为空,或者k<0, 则返回原链表。2.两个指针p,q,先让指针p往前走n步,这样就保持p,q指针相差n个数。。3.此时p与q一起各往前一步一步走,当p指向空时,q指向倒数第n个结点。注意点:判断指针p的状态的临界点当p为None时,t<n,不用删除,返回原链表.当p为None时,t=n, 删除第一个结点。当p.next为空时,删除的时链表的中间结点。"===============================题目解答==

2022-04-24 15:51:21 820

原创 python高级学习:动态类Type,元类Metaclass

理解变量python 如何创建变量a = 3python将会执行三步去完成上面这个请求。1.创建一个对象代表32.创建一个变量a,如果a未创建。3.将变量a与对象3相连接。可以将变量a看作对象3的一个引用,多个变量可以指向同一个对象,在Python中叫共享引用。a = 3b = a由于共享引用的存在,有一些对象和操作会在原处修改对象。Python中对象可分为可变类型对象和不可变类型对象。可变对象:列表,字典不可变对象:数字,字符串,元组如果变量b是不可变对象a的引用,对变量名a

2022-04-14 12:15:25 689

原创 python 装饰器:同一个函数调用多个装饰器和嵌套函数调用一个装饰器

总结:先调用的在里面,后调用的在外面,实际上是函数返回的机制:栈。参考连接:这篇文章,帮助你初步理解装饰器两个装饰器from functools import wrapsdef decorator_name(a_func): @wraps(a_func) def wrapTheFunction(*args): print(a_func.__name__ +"的装饰器1:执行前") a_func(*args) print(a_func.

2022-02-28 17:18:18 2219

原创 python调用fortran的3种形式【f2py,动态链接库,os命令】

f2py调用fortran基于 F2PY,在 Python 中调用 Fortran 函数的基本流程是:Fortran 代码使用f2py编译 Fortran 代码,产生动态库在 Python 中通过import引入动态库"""======================1.fortran程序========================="""function foo(a) result(b) implicit none real(kind=8), intent(in)

2022-01-20 16:02:41 7337 5

原创 分布式框架Ray——启动ray、连接集群详细介绍

Ray 程序能够通过利用底层Ray 运行时进行并行化和分发。Ray 运行时由在后台启动的多个服务/进程组成,用于通信、数据传输、调度等。Ray 运行时可以在笔记本电脑、单台服务器或多台服务器上启动。启动 Ray 运行时的三种方式:1、隐式通过ray.init()(在单台机器上启动 Ray,自动创建ray集群)2、通过 CLI 显式(通过 CLI启动 Ray (ray start --head --port=6379))3、显式通过集群启动器(启动 Ray 集群 (ray up ./xx.sh))4

2022-01-18 14:28:42 5570

原创 并行计算、分布式计算、集群概念及区别(初学者待更新)

并行计算、分布式计算都属于高性能计算范畴,主要目的都是对大数据进行分析和处理,都是利用并行来获得更高性能的计算——把大任务分为n个小任务。并行计算并行计算是相对于串行计算来说的,并行计算主要目的是加速求解问题的速度和提高求解问题的规模。为了利用并行计算求解一个计算问题,通常基于以下考虑:1.将计算任务分解成多个子任务,有助于同时解决;2.在同一时间,由不同的执行部件可同时执行多个子任务;3.多计算资源下解决问题的耗时要少于单个计算资源下的耗时。分布式计算分布式计算主要研究分散系统如何进行计算。分布式

2022-01-17 15:21:40 3730

原创 linux 常用命令工作必备(持续更新)

linux命令

2021-12-23 09:26:58 324

原创 python 实现嵌套字典的分组排序

def sort_dict(in_result,limit): # 最外层的dict几个键,表示分组排序 position = [i for i in in_result.keys()] for pos in position: # 在每个组内,按某个字段排序 sort_dict = sorted(in_result[pos], key = lambda x:x["b"], reverse = False) # 获取第limit个小值,比如前3个最

2021-12-13 17:31:18 1484

原创 python 利用递归修改嵌套字典的内容

为方便起见,更新字典的内容为原内容加1.def update_dict(root): # 判断是否为空树 if root == {}: return {} # 递归遍历嵌套字典 for root_key, root_value in root.items(): # 是否为叶子节点 if not isinstance(root[root_key],dict): # 更新叶子节点的值 roo

2021-12-07 13:20:22 1670

原创 python同包下不同模块之间的调用

1. 文件的结构文件结构:包yuesfpkg两个并行模块:模块input_manager,模块output_manager测试文件:test.pyinit.py作用:1、识别它是一个包还是一个文件夹。2、可以用来做批量导入,让别的包调用。2. 具体代码2.1 模块input_manager下的三个函数代码"""__init__.py"""# -*- coding:utf-8 -*-# 通知别人如何调用该模块内的代码from yuesfpkg.input_manager.user_i

2021-08-27 16:51:46 1968

原创 将自己的python代码提供给别人pip install使用

1.编写模块结构1.1 git创建空文件在 阿里云git上创建一个空项目yuesf08,并下拉到本地,如下图所示git/yuesf08。1.2 编写包功能函数yuesf08文件下创建包yuesfpug, 第一个init函数必须存在,第二个是用户编写的函数。# init.py# -*- coding:utf-8 -*-from . import add_num# add.num.py# -*- coding:utf-8 -*-def add_num(a,b): return a+

2021-08-24 18:16:47 1033 3

原创 执行git reset --hard后文件的恢复

1.判断文件是否可恢复首先判断执行git reset --hard命令之前是否有其他操作:没有执行git add ., git commit -m'注释'操作,文件不可恢复。执行git add .,没有执行git commit -m'注释'操作,文件可恢复,比较麻烦。执行git add ., git commit -m'注释'操作,文件可恢复,属于正常操作。第三种情况:返回指定版本# 返回到某一次commit前的代码git reset --hard xxxxxx(指定版本号) 第二种

2021-08-12 12:13:22 4619

原创 工作中必备的 git 操作

1. 从gitlab下载到本地新建文件夹,右击点git bash here1.在输入git clone url(网址:http开头的)2.ls3.cd4.git checkout dev5.git pull

2021-07-28 13:38:10 506

原创 介绍zip和enumerate方法的使用

zip和enumerate方法在python中主要的使用方式:1.zip可以在处理循环时用到,返回一个将多个可迭代对象组合成一个元组序列的迭代器。每个元组都包含所有可迭代对象中该位置的元素。for i,p in zip(['a', 'b', 'c'], [1, 2, 3]): print(i,p)#a 1#b 2#c 32.zip除了可以将两个列表组合到一起之外,还可以使用星号拆封列表,返回的是单个元组some_list = [('a', 1), ('b', 2), ('c

2021-07-22 17:05:00 567

原创 开发python第三方库时如何修改调试代码

1. 问题背景假设pip_package是项目开发的包,目前还在开发测试阶段。那么你在开发时会出现两个版本:包A–pip_package,包B–pip_package。第一个是包A–pip_package你通过pip install pip_package安装的,这个pip_package是项目负责人发送到远程的一个版本A,文件在python的安装路径下:Lib/site-packages。第二个包B–pip_package你从团队中拷贝下的pip_package,路径放在任意位置(只要不是py

2021-07-22 13:48:25 1195 2

原创 fortran 将数据读写文本式文件、二进制文件

1. 写入有格式文档program ch0913 implicit none !表示所有变量必须正确声明 integer, parameter :: n = 20 integer, dimension (1:n) :: x = 0 !长度为10得数组 real, dimension (1:n) :: y = 0.0 !声明变量 integer :: i real :: t, t1, t2, t3, t4, t5 character *

2021-04-06 15:49:20 4324

原创 二、八、十、十六进制的相互转化

常见的进制bit(比特)是最小的存储的单位为,一个bit表示一个二进制位;字节(byte)是最小的运算单位,8bit=1字节。1个字节能表达 -128~127 ,第一个表示符号位,0表示正,1表示负,最大的01111111表示127,最小的10000000表示-128。1个字节能表达0-255,没有符号位,最大的11111111=255,最小的00000000=0。二进制,八进制,十六进制的关系:21,23,242^1,2^3,2^421,23,24,八进制的一位是二进制的三位,十六进制的一位是二进制的

2021-04-06 15:09:45 694

原创 分布式框架Ray的高级模式:重叠计算与通讯

重叠计算与通信有时,应用程序的一个组件既需要进行计算密集型工作,又需要与其他进程通信。理想情况下,您希望重叠计算和通信,以尽量减少不执行计算密集型工作所花费的时间。如果您等待远程任务返回,那么CPU进程将是空闲的。在某些情况下,这种行为是不可取的,例如:如果计算一个工作项所花费的时间比系统中的RTT时间长得多,这就不太可能有显著的好处。如果计算每个任务(或本例中的工作项)的时间是高度可变的,则可以通过将小任务阻塞在大任务之后来增加它们的延迟在下面的示例中,worker actor从队列中提

2021-03-30 10:18:07 704

原创 分布式框架Ray——基本反模式

大家使用分布式框架Ray时,基本反模式就是大家容易范的错误;本文在讲解基本反模式的同时,也给出了对应的解决方案。1. 访问任务/参与者中的全局变量不要修改远程函数中的全局变量,相反,将全局变量转换为参与者(actor)的局部实例变量。由@ray.remote装饰的Ray任务和actor在不同的进程中运行,它们不与Ray驱动程序共享相同的地址空间;也就是说,如果你定义了一个全局变量并改变了驱动程序中的值,这些改变不会反映在worker(也就是task和actor)中。import rayglob

2021-03-24 16:55:05 602

原创 分布式框架Ray——基本模式

1. 基本模式1. Tree of Actors在此模式中,Ray actor可以监督很多个Ray worker actor。supervisor参与者的一次调用会触发对子参与者的多个方法调用的分派,在返回之前,supervisor可以处理结果或更新子参与者。注意:如果supervisor死亡(driver死亡),worker actor仍会自动工作。actors可以被嵌套到多个层次以形成一棵树。示例:你想要同时训练3个模型,同时能够检查它的状态import ray#定义工人类@

2021-03-24 11:21:04 1541 3

原创 Ray入门指南——分布式框架(待更新)

win10+python3.7.3安装ray库pip install -i https://mirrors.aliyun.com/pypi/simple/pytest-runnerpip install -i https://mirrors.aliyun.com/pypi/simple/ray使用ray库计算100次的延迟1秒import rayimport timeimport numpy as np# 启动Ray.ray.init()#定义remote函数@ray.remote

2021-03-22 11:19:38 7044 14

原创 pycharts 折线图上Markpoint/自定义多个标记点

折线图上标记自定义点逻辑:在折线图上画散点图,利用了图的叠加。from pandas import DataFrameimport pandas as pdimport numpy as npfrom pyecharts.charts import Bar,Pie,Tab,Scatter,Linefrom pyecharts import options as optsline1= ( Line() .add_xaxis(['1-11','1-12','1-13','1-14

2021-03-22 09:26:19 3368

翻译 核磁共振成像常用技术——杨正汉(6)

水成像技术利用水信号具有长T1,T2特性化学位移成像技术普通的抑制技术,比如水70,脂肪中的水30,最终成像是70,降低了30%;反相位的信号是70-30=40,降低了60%纯脂肪组织只有脂肪信号,没有水,所以不受影响。脂肪抑制技术化学位移饱和法脂肪饱和是只有纵向磁化矢量,在激发射频脉冲(选择水的进动频率)时,这时只激发了水,所以脂肪不产生信号。STIR技术频率选择反转脉冲选择性水激发技术利用水和脂的进动频率不一样,选择不同的激发使得水在.

2020-12-22 20:50:25 1215

高漫1060pro数位板的屏幕手写小助手

下载后不用安装,解压即可使用

2022-12-27

Ray Design Patterns.pdf

分布式框架Ray——设计模式

2021-03-26

excel文档.zip

https://blog.csdn.net/weixin_43585712博客下的pandas$excel学习笔记操作的excel文档合集

2019-08-07

稀疏矩阵求解

大型稀疏矩阵求解算法的改进

2018-12-20

空空如也

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

TA关注的人

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