自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 动态规划算法---钢条切割

算法进阶---动态规划算法钢条切割问题:程序实现:钢条切割问题:程序实现:方法一和方法二是对程序实现的不断深入,逐渐降低算法实现的时间复杂度。p = [0, 1, 5, 8, 9, 10, 17, 17, 20, 21, 23, 24, 26, 27, 27, 28, 30, 33, 36, 39, 40]# p = [0, 1, 5, 8, 9, 10, 17, 17, 20, 24, 30]#方法一,两边都切割,重复了很多计算#@cal_timedef cut_rod_recu

2022-03-29 22:47:10 2674 1

转载 2021python组D题

思路分析:这道题可谓是究极嵌套!融合了最短路径,最小公倍数和动态规划。一个不会就全凉了~最小公倍数我已经整理成精简模板放代码里了,考试时直接套模板就行。动态规划经典的做题步骤有5步。#最小公倍数模板(least common multiple)#关键是求出a,b两个数的最大公约数cdef lcm(a,b): if a<b: a,b=b,a c,d=a,b while d!=0: c,d=d,c%d return..

2022-03-26 22:16:59 644

转载 2021python组C题

思路分析:长宽高,三重循环,枚举暴力.两个知识点:一个是约数,另一个是集合。1、判断约数算法: n%i==0约数指的是被整除后没有余数的数。举个栗子:3%1 == 0 ; 3%3 ==0 , 1和3就是3的约数。2、创建集合容器方法:docker=set()选用集合作为容器存放数据,是因为集合的数据不会重复。相同的数据不会重复添加。import timestart = time.time()n=2021041820210418 #货物数量cnt..

2022-03-25 22:22:55 422

原创 2021python组B题

思路:通过确定不同的点之间确定的斜率与截距,将其放入集合中,利用集合的特征(唯一性)对重复的直线进行筛选。我们先将垂直于x轴的直线(斜率不存在的直线)排除在外,再统计其余的直线。#穷举法import timestart = time.time()# 确定点列表。平面上20X21个整点{(x,y)|0≤x<20,0≤y<21,x∈Z,y∈Z}ptslist = [(x,y) for x in range(20) for y in range(21)]kdset = set() # 构建一个集合.

2022-03-24 22:39:23 1439

原创 2021python组A题

方法一,str(i).count("1")import timestart = time.time()#解题思路:拼数字的话1的卡片肯是用的最快的num=0for i in range(1,10000): num+=str(i).count("1") #计算字符串i中,字符1出现的次数。 if 2021 == num: print(i) breakend = time.time()print(end - start) #所用时间为2ms左右.

2022-03-23 21:04:57 966

原创 10、Numpy库---通用函数

Numpy库---通用函数

2022-03-22 22:31:27 745

原创 9、Numpy库---Axis理解

@[TOC](Numpy库---Axis理解)之前的课程中,为了方便大家理解,我们说axis=0代表的是行,axis=1代表的是列。但其实不是这么简单理解的。这里我们专门用一节来解释一下这个axis轴的概念。==除了delete用axis=0表示行以外,其他的大部分函数都是axis=1来表示行。==**简单来说, 最外面的括号代表着 axis=0,依次往里的括号对应的 axis 的计数就依次加 1**。什么意思呢?下面再来解释一下。

2022-03-21 21:08:43 992

原创 8、Numpy库---np.random模块

@[TOC](Numpy库---np.random模块)np.random为我们提供了许多获取随机数的函数。这里统一来学习一下。## 1、np.random.seed:用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed()值,则每次生成的随即数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。一般没有特殊要求不用设置。

2022-03-21 19:34:12 536

原创 7、Numpy库---NAN和INF值处理

@[TOC](Numpy库---NAN和INF值处理)概述:首先我们要知道这两个英文单词代表的什么意思,1、NAN:Not A number,不是一个数字的意思,但是他是属于浮点类型的,所以想要进行数据操作的时候需要注意他的类型。2、INF:Infinity,代表的是无穷大的意思,也是属于浮点类型。np.inf表示正无穷大,-np.inf表示负无穷大,一般在出现除数为0的时候为无穷大。比如2/0。## 1、NAN一些特点:1、NAN和NAN不相等。

2022-03-21 16:23:42 2161

原创 6、Numpy库---文件操作

@[TOC](Numpy库---文件操作)## 1、操作CSV文件:### 1.1 文件保存:有时候我们有了一个数组,需要保存到文件中,那么可以==使用np.savetxt来实现==。相关的函数描述如下:> np.savetxt(frame, array, fmt='%.18e', delimiter=None)>* frame : 文件、字符串或产生器,可以是.gz或.bz2的压缩文件>* array : 存入文件的数组>* fmt : 写入文件的格式,例如:%d %.2f %.18e

2022-03-21 10:25:51 496

原创 5、Numpy库---深拷贝和浅拷贝

@[TOC](Numpy库---深拷贝和浅拷贝)## 深拷贝和浅拷贝在操作数组的时候,它们的数据有时候拷贝进一个新的数组,有时候又不是。这经常是初学者感到困惑。下面有三种情况:### 1、不拷贝:如果只是简单的赋值,那么不会进行拷贝。==不进行变量的拷贝==。示例代码如下:```python

2022-03-21 09:53:40 310

原创 4、Numpy数组索引、切片与值的替换

@[TOC](Numpy数组索引、切片与值的替换)## 1、索引与切片:### 1.1 获取某行的数据::示例代码如下:```python# 1. 如果是一维数组a1 = np.arange(0, 29)print(a1[1]) # 获取下标为1的元素#结果为:1

2022-03-20 22:50:33 3084

原创 3、Numpy数组操作---第5节矩阵转置

@[TOC](Numpy数组操作)**本节内容紧接上一篇内容,同属于数组操作的章节。**## 5、数组(矩阵)转置和轴对换:1、numpy中的数组其实就是线性代数中的矩阵。矩阵是可以进行转置的。ndarray有一个T属性,可以返回这个数组的转置的结果。示例代码如下: ```python#ndarray有一个T属性,可以返回这个数组的转置的结果。a1 = np.arange(0,24).reshape((4,6))print(a1)

2022-03-20 22:15:25 10458

原创 3、Numpy数组操作

@[TOC](Numpy数组操作)## 1、数组广播机制:### 1.1 数组与数的计算:在Python列表中,想要对列表中所有的元素都加一个数,要么采用map函数,要么循环整个列表进行操作。但是NumPy中的数组可以直接在数组上进行操作。示例代码如下:```pythonimport numpy as npa1 = np.random.random((3,4))print(a1)

2022-03-19 22:57:29 775

原创 1、pands库的介绍

## 为什么要学习pandas?**那么问题来了:**numpy已经能够帮助我们处理数据,能够结合matplotlib解决我们数据分析的问题,那么pandas学习的目的在什么地方呢?numpy能够帮我们处理处理数值型数据,但是这还不够, 很多时候,我们的数据除了数值之外,==还有字符串,还有时间序列等==>比如:我们通过爬虫获取到了存储在数据库中的数据所以,pandas出现了。

2022-03-19 20:41:10 591

原创 2、NumPy数组基本用法

@[TOC](NumPy数组基本用法)(1)Numpy是Python科学计算库,用于快速处理任意维度的数组。(2)NumPy提供一个==N维数组类型ndarray==,它描述了==相同类型==的“items”的集合。(3)numpy.ndarray支持向量化运算。(4)NumPy使用c语言写的,底部解除了GIL,其对数组的操作速度不在受python解释器限制。## 1、numpy中的数组:Numpy中的数组的使用跟Python中的列表非常类似。他们之间的区别如下:

2022-03-18 21:16:09 2711

原创 Python中常用的数据结构---二叉树的遍历

## Python中常用的数据结构---二叉树的遍历常用的数据结构有数组、链表(一对一)、栈和队列、哈希表、树(一对多)、图(多对多)等结构。在本目录下我们将讲解,通过python语言实现常用的数据结构。#### 2.二叉树的遍历二叉树的遍历分为4种,前序遍历、中序遍历、后序遍历、层序遍历前序遍历:根节点、左节点、右节点中序遍历:左节点、根节点、右节点后序遍历:左节点、右节点、根节点

2022-03-17 23:11:34 979

原创 Python中常用的数据结构---树(非线性结构)

## Python中常用的数据结构---树常用的数据结构有数组、链表(一对一)、栈和队列、哈希表、树(一对多)、图(多对多)等结构。在本目录下我们将讲解,通过python语言实现常用的数据结构。#### 1.树和二叉树1.1满二叉树:一个二叉树的所有非叶子节点都存在左孩子和右孩子,并且所有叶子结点都在同一层级上,那么这个树就是满二叉树。1.2完全二叉树:对一个有n个节点的二叉树,按层级顺序编号,则所有节点的编号为从1到n。如果这个树所有节点和同样深度的满二叉树的编号为从1到n的节点位置相同,则这个

2022-03-17 20:37:26 1833

原创 蓝桥杯基础练习VIP---高精度加法

@[TOC](蓝桥杯基础练习VIP---高精度加法)## 高精度加法>问题描述:  输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。>题目所给算法描述:  由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。==计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的

2022-03-16 22:41:18 110

原创 蓝桥杯基础练习VIP---阶乘计算

@[TOC](蓝桥杯基础练习VIP---阶乘计算)## 阶乘计算>问题描述:  输入一个正整数n,输出n!的值。其中n!=1乘2乘3*…*n。>题目所给算法描述:  n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。将a乘以一个整数k变为将数组A的每一个元素都乘以k,**注意处理相应的进位**。  首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。>输入格式:  输入包

2022-03-15 22:55:26 1139

原创 蓝桥杯基础练习---特殊数字

@[TOC](蓝桥杯基础练习---特殊数字)## 特殊的数字>问题描述:  153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1的3次方+5的3次方+3的3次方=1+125+27。编程求所有满足这种条件的三位十进制数。>输出格式:  按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。==pow(x,y)表示求解x的y次幂pow(x,y,z)表示求解x的y次幂对z取余后的结果==

2022-03-15 10:17:00 7222

原创 蓝桥杯基础练习---特殊回文数、回文数

## 蓝桥杯基础练习---特殊回文数、回文数### 1、回文数回文数:表示该数字从左边读和从右边读一样。>问题描述:  1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。>输出格式:  按从小到大的顺序输出满足条件的四位十进制数。

2022-03-14 20:57:38 1271

原创 蓝桥杯基础练习---进制转换

## 蓝桥杯基础练习-进制转换==转化为二进制:bin()函数;转化为八进制:oct()函数;转化为十进制:int()函数;转化为十六进制:hex()函数。====【注意】:==(1).lower()方法可将字符串中的所有大写字母变为小写(2).upper()方法可将字符串中的所有小写字母变为大写(3).title()方法将每个单词的首字母都改为大写(4)而.capwords()并不是字符串本身的方法,而是string模块中的函数,使用.capwords()函数将一个字符串中的所有独立的英文单词

2022-03-14 16:04:18 431

原创 Python中常用的数据结构---哈希表(字典)

Python中常用的数据结构—哈希表(字典)常用的数据结构有数组、链表(一对一)、栈和队列、哈希表、树(一对多)、图(多对多)等结构。在本目录下我们将讲解,通过python语言实现常用的数据结构。4.哈希表哈希表(hash table)也叫作散列表,这种数据结构提供了键(key)和值(value)的映射关系。只要给出一个key,就可以高效查找到它所匹配的value,时间复杂度接近于O(1)。哈希函数就是将key和value值对应起来的函数。在不同语言中,哈希函数的实现方式是不一样的,在python

2022-03-13 20:46:29 11139 2

原创 Python中常用的数据结构---栈和队列

Python中常用的数据结构—栈和队列常用的数据结构有数组、链表(一对一)、栈和队列、哈希表、树(一对多)、图(多对多)等结构。在本目录下我们将讲解,通过python语言实现常用的数据结构。3.栈和队列3.1栈定义:栈是一种线性数据结构,栈中的元素只能先入后出。最早进入的元素存放的位置叫作栈底,最后进入的元素存放的位置叫作栈顶。栈这种数据结构既可以用数组实现,也可以用链表实现。栈的基本操作:入栈、出栈(1)入栈(push):入栈操作就是把新元素放入栈中,只允许从栈顶一侧放入元素,

2022-03-12 18:58:53 4470

原创 Python中常用的数据结构---链表

## Python中常用的数据结构---链表常用的数据结构有数组、链表(一对一)、栈和队列、哈希表、树(一对多)、图(多对多)等结构。在本目录下我们将讲解,通过python语言实现常用的数据结构。#### 2.链表2.1链表的结构链表(linked list)是一种在物理上非连续、非顺序的数据结构,由若干节点(node)所组成。(1)单向链表的每一个节点又包含两部分,一部分是存放数据的变量data,另一部分是指向下一节点的指针next。表示方式如下:

2022-03-09 23:23:33 3344

原创 python常用数据结构---数组

Python中常用的数据结构常用的数据结构有数组、链表(一对一)、栈和队列、哈希表、树(一对多)、图(多对多)等结构。在本目录下我们将讲解,通过python语言实现常用的数据结构。1.数组在python语言中,并没有直接使用数组这个概念,而是使用列表(list)和元组(tuple)这两种集合,它们的本质都是对数组的封装。其中,列表是一个动态可扩展的数组,支持任意的添加、删除、修改元素;而元组是一个不可变集合,一旦创建就不支持修改,即不支持添加、删除、修改操作,只支持查看。下面我们提到的数组概念,对

2022-03-09 19:03:04 1419

原创 1、numpy库介绍

## Numpy库介绍NumPy是一个功能强大的Python库,主要用于对多维数组执行计算。NumPy这个词来源于两个单词-- Numerical和Python。NumPy提供了大量的库函数和操作,可以帮助程序员轻松地进行数值计算。在数据分析和机器学习领域被广泛使用。他有以下几个特点:1、numpy内置了并行运算功能,当系统有多个核心时,做某种计算时,numpy会自动做并行计算。2、Numpy底层使用C语言编写,内部解除了GIL(全局解释器锁),其对数组的操作速度不受Python解释器的限制,效率远

2022-03-07 12:43:55 14839 1

原创 pytorch框架实现线性回归

### pytorch框架实现线性回归**基础知识:__call__(),魔术方法的使用。**```python#__call___(): 使得类对象具有类似函数的功能。class A(): def __call__(self): print('i can be called like a function')a = A()a() #结果:i can be called like a function```

2022-03-07 11:13:44 439

原创 pytorch框架实现反向传播

### 反向传播(back propagation)使用pytorch框架不需要自己去手动求导,框架中自带求导的工具,我们可以通过反向传播将梯度往回传播。通常有二个过程,forward和backward。

2022-03-06 19:00:15 1727

原创 梯度下降法(GD、SGD、BGD、MINI-BGD)

### 1、梯度下降法(Gradient Descent Algorithm)梯度下降法,类似于贪心算法,只考虑当下,一般找到的是局部最优解。在深度学习中,大量使用梯度下降法,因为神经网络中损失函数并没有特别多的局部最优点,所以找到的一般都是全局最优解。损失函数-如下图所示:

2022-03-06 10:08:55 2568

原创 蓝桥杯基础训练-数列排序

求解问题方法1、首先做出判断输入的n值合法,满足1<=n<=200,强制转化为int型,默认为str2、满足上面的要求,然后再将待排序的数字,存于列表ls中,强制转换为list类型,并将所有的数据由str变成int型3、使用 ls.sort()排序,默认reverse=False从小到大输出,reverse=True则相反4、通过for循环打印列表中数据,end=' '的作用是输出不换行。

2022-03-04 17:40:26 107

原创 蓝桥杯中必知的python基础知识

蓝桥杯中必知的python基础知识重点说一下,蓝桥杯python组中,题目一般都会要求写输入输出,而像LeetCode中的算法练习,更适用于找工作时用,算法题主要按照算法思想编写函数体,不考虑输入的变量,只考虑函数的返回值。下面将介绍关于蓝桥杯python组的一些基础知识。

2022-03-03 22:23:15 1764

原创 蓝桥杯入门-1、Fibonacci数列-Python

数值过大可能是测试用例的输入很大导致的,列表中数据太多导致内存超限;另一方面,输入数值过大,有可能会发生计算错误的情况。针对上面这两种情况,我们做一下改进:Python语句的改进只保留想要的,列表里只存放2个值累加过程中,超过10007时,就减去10007

2022-03-03 18:00:58 218

原创 2、线性回归预测模型的实现(linear model)y=x*w+b

### 线性回归预测模型的实现(linear model)y=x*w+b**通过 numpy包穷举找到线性模型的预测的w和b值,并用matplotlib和mpl_toolkits包画出在训练过程中w、b、loss的三维变化。**1、实现==y=x*w + b==线性回归预测。**关键是求解出w和b的值,w和b的值知道了其线性模型就确定了。**如下图所示:

2022-03-02 23:01:22 1910 1

原创 1、线性回归预测模型的实现(linear model)y=x*w

### 线性回归预测模型的实现(linear model)**通过 numpy包穷举找到线性模型的预测的w值,并用matplotlib包画出线性预测效果。**1、实现==y=x*w==线性回归预测。本例题中有学习成绩关于学习时长的一组数据,其满足线性模型,通过此数据训练一个线性模型,并用训练完的模型做预测,预测时长x=4时,成绩y=?。**关键是求解出w的值,w的值知道了其线性模型就确定了。**

2022-03-02 21:41:19 1339

原创 pytorch中张量的维度变换,torch.squeeze()、torch.unsqueeze()函数

### 张量维度变换通过.reshape方法,能够灵活调整张量的形状。而在实际操作张量进行计算时,往往需要另外进行降维和升维的操作,当我们需要除去不必要的维度时,可以使用squeeze函数,而需要手动升维时,则可采用unsqueeze函数。#### 1.torch.squeeze()函数:删除不必要的维度,==提出了shape返回结果中的1==

2022-03-01 21:26:09 2347

原创 pytorch中张量的合并操作.cat()、.stack()方法

### 张量的合并操作张量的合并操作类似与列表的追加元素,可以拼接、也可以堆叠。#### 1.拼接方法:.cat()PyTorch中,可以使用.cat()方法实现张量的拼接,==不改变张量形状,并且返回结果是原张量的视图==。**(1).cat()方法的使用,第一个参数和第二个参数:为目标张量,第三个参数:0表示行数增加,1表示列数增加,注意观察张量形状**

2022-03-01 20:46:41 8684

原创 pytorch中张量的分块.chunk()方法和拆分.split()方法

### 张量的分块和拆分方法#### 1.分块:.chunk()方法.chunk()方法能够按照某维度,对张量进行均匀切分,并且返回结果是原张量的视图。**(1).chunk()函数的使用,第一个参数:目标张量,第二个参数:等分的块数,第三个参数:按照的维度**

2022-02-28 22:59:25 7250

原创 pytorch中张量.view()方法

### pytorch中张量的.view()方法在正式介绍张量的切分方法之前,需要首先介绍PyTorch中的**.view()方法**。该方法会返回一个类似视图的结果,该结果和原张量对象**共享一块数据存储空间**,并且通过.view()方法,还可以改变对象结构,生成一个不同结构,但共享一个存储空间的张量。当然,共享一个存储空间,也就代表二者是“浅拷贝”的关系,**修改其中一个的数值,另一个张量对应的数值也会同步进行更改**。

2022-02-28 22:07:32 1075

空空如也

空空如也

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

TA关注的人

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