- 博客(29)
- 资源 (34)
- 收藏
- 关注
原创 【什么是生成器】
什么是生成器?一、生成式 —— 一种调函数的方式二、元组推导式 —— 延迟演算三、yield 语句 —— 交替执行四、yield 表达式五、计算斐波那契数列 —— 生成无限的数据一、生成式 —— 一种调函数的方式 如果忽略开水、价钱,买方便面和泡方便面有何差别?买方便面可能一次买一箱,不是吃多少卖多少,但泡方便面则不会一次泡一箱,时,肯定是吃多少泡多少。 函数也是一样。如果函数的计算结果有 10000 项数据,调函数时会得到这 10000 项数据,跟买方便面一样,哪怕用不到也得买这么多。 生成
2022-04-09 23:26:33
597
原创 str 与 repr
str 与 reprstr 与 repr 有何差别?一、自测题选择题:执行下列代码,问号处选择( )将出现异常。a = "hello world"b = eval(?)print(b)选项为:A、repr(a) B、repr(‘a’) C、str(a) &nb
2022-04-02 10:39:56
429
原创 pytorch入门(十):repeat
repeatpytorch的张量与numpy的数组有很多相似之处,但repeat有明显差异。1、方向repeat(repeats,axis)的两个参数,分别表示重复的次数和方向。对于二维数组,axis = 1表示垂直方向,axis = 2表示水平方向,与torch.sum和np.repeat都不一样。2、重复的方式np的重复方式是各向量分别重复,如 001122torch的重复方式为整块复制,如 012012import numpy as npa = np.arange(6).resh
2021-04-13 10:06:03
615
1
原创 代码急转弯——什么是变量?
代码急转弯——什么是变量?1、什么是赋值?2、python 的变量是一个标签3、x = y 是何意?4、x += 1 是赋值吗?5、x += [1] 是赋值吗?5、x[:] = [1] 与 x = [1] 是有何不同?标题有点拗口,实际上是在问变量是什么?1、什么是赋值?百度百科中,将赋值定义为:“将某一数值赋给某个变量的过程,称为赋值。”这种定义将变量视作一个内存地址,用该地址指定的一小块存储空间存储数据,可直观想象为一个房间,变量的地址即为房间的门牌号,赋值意味着把数据存入房间。x = 1意味着把
2021-02-27 20:42:36
353
1
原创 代码急转弯——命令与脚本有差别吗?
代码急转弯——命令与脚本有差别吗1、如何执行语句?2、脚本3、命令4、交互窗口又如何?1、如何执行语句?在集成环境中,可以直接在命令窗口中执行语句。输入一个语句,按下回车键后,系统执行这个语句,像是在执行命令。也可以把多个语句保存在一个脚本文件中,在命令窗口中执行脚本文件。现在问,这两种执行语句的方式有木有什么差别?2、脚本编辑脚本文件E:\Test\python0\t01.py# -*- coding: utf-8 -*-a = 1234567b = 1234567print(id(a)
2021-02-10 16:40:48
1380
原创 代码急转弯——numpy 的 unique 能替代 set 吗?
代码急转弯——np.unique与set1、基本用法2、坑 = 数组元素为数组3、试试 set1、基本用法np.unique用于计算数组中的唯一元素,例如import numpy as npa = [1,2,1,3,1,2]b = np.unique(a)print(b)结果为[1 2 3]2、坑 = 数组元素为数组数组元素为数组时,结果与预期不一致,如import numpy as npa = [(1,2),(1,3),(1,2)]b = np.unique(a)print
2021-02-10 11:36:57
1050
1
原创 C++基本概念
C++入门1、基本特性1.1 输入输出1.2 引用1.3 动态对象1.4 异常处理2、类2.1 类定义2.2 静态成员2.3 重载3、派生类4、多态性C++是一种面向对象的程序设计语言。从命名中可以看出它与C的渊源——通过在C中添加面向对象的特性,如类、多态和模板等而得到的一个C的超集。C作为C++的子集也自然得到C++开发环境的支持,而且还能够应用由C++带来的特性。面向对象程序设计的基本特性可概括为:封装性、继承性和多态性。在本章,我们将了解C++的输入输出、引用和异常处理等基本概念,以及C++中类
2021-02-08 00:34:57
1437
原创 life游戏——最简元胞自动机
代码急转弯——life游戏1、游戏规则2、python实现1、游戏规则1)二维数组想象一个二维数组。它的所有元素取值为1或者0。取值为1表示在该元素的位置有一个生命,取值为0表示此位置没有生命。2)邻居3×3的二维数组,与中心元素相邻的有8个元素,设想为各元素有8个邻居。3)生存生命代代相传,生生不息。如果某个生命有2个,或者3个邻居,则该生命能够存活到下一代。4)繁衍如果某个空格有3个邻居,则到下一代,该空格将诞生一个新生命。2、python实现import numpy as np
2021-02-06 01:01:09
547
原创 代码急转弯——python -m
代码急转弯——python -m1、python a.py 与 python -m a.py2、python dir 与 python -m dir3、python dir/a.py 与 python -m dir.a在命令窗口中可用命令python a.py来执行python脚本a.py,还可以加上选项 -m 把 a.py 作为模块来执行,如python -m a【问题】是 -m 参数有何作用?下面通过6条命令来加以说明。先来看看目录结构, E:\dir1>
2021-01-30 00:56:44
313
2
原创 代码急转弯——from . import
代码急转弯——from . import xxx1、import2、问题引入3、from .xxx import xxx1、import导入,用于实现在a文件中调用b文件的函数,即我如何调你的函数?格式1:from m1 import fun在m1.py文件中定义了函数fun,如果想在a.py文件中调用fun,先编写上述命令导入指定的fun函数,然后就能在a.py中调用fun函数了。格式2:from m1 import *导入了m1.py中的各个函数,自然也包括fun函数。格式3:i
2021-01-29 14:35:28
395
2
原创 代码急转弯——高维线性可分
代码急转弯——高维线性可分1、线性可分2、高维线性可分3、DIY (Do It Yourself)1、线性可分在二维的情况下,线性可分是指用一条直线将两类点分开,如下图所示。2、高维线性可分也许可用一条曲线将两类点分开,这时,线性模型就不好用了。如果能找到一个映射,把平面点升维到三维空间的点,平面曲线也升维到三维空间的平面,于是这两类点就重归线性可分,这就是高维线性可分。3、DIY (Do It Yourself)先设置绘图方式,以便观察3D效果。在Spyder中选【tools】、【pr
2021-01-17 10:10:43
690
原创 代码急转弯——@staticmethod和@classmethod
代码急转弯——@staticmethod和@classmethod1、类的定义2、三种成员函数3、@classmethod4、@staticmethod1、类的定义类是python中的用户自定义类型。下面的代码定义了一个最简单的类。class A: passprint(A())运行结果<__main__.A object at 0x00000262D34B6C48>2、三种成员函数类是一种容器,可以在里面放一些变量和函数。函数用于实现一些功能,变量则在函数之间传递数
2021-01-13 00:41:51
184
原创 pytorch入门(九):处理异或问题
处理异或1、什么是异或?2、异或是线性不可分的3、用逻辑回归建模4、用简单神经网络处理异或1、什么是异或?异或是一种二元运算&。一位二进制数的&运算规则为: 0 ^ 1 = 1 1 ^ 0 = 1 1 ^ 1 = 0 0 ^ 0 = 0提问:11&22 等于多少?先把11化为5位二进制数,得到 (01011)2(01
2021-01-01 11:49:03
2498
原创 pytorch入门(八):梯度下降
梯度下降1、什么是迭代法2、什么是梯度下降法3、arg minxf(x)=2x12+x22\argmin_{x}f(x)=2x_1^2+x_2^2xargminf(x)=2x12+x221、什么是迭代法解方程时,有时可以得到精确解,有时只能得到近似解。如解方程, x2−4=0 x^2-4=0 x2−4=0可以得到精确解,x1=2,x2=−2x_1=2,x_2=-2x1=2,x2=−2如果想知道2\sqrt{2}2是多少,解方程,x2−2=0 x^2-2=0 x2−2=0就只能求近似解了。
2020-11-22 00:36:54
527
1
原创 代码急转弯——Tupper(塔珀自指公式)
代码急转弯——tupper自指函数自指函数)图塔珀自指函数12<⌊mod(⌊y17⌋2−17⌊x⌋−mod(⌊y⌋,17))⌋\frac{1}{2}<\left\lfloor mod(\left\lfloor\frac{y}{17}\right\rfloor2^{-17\lfloor x \rfloor-mod(\lfloor y \rfloor,17)})\right\rfloor21<⌊mod(⌊17y⌋2−17⌊x⌋−mod(⌊y⌋,17))⌋...
2020-11-14 13:03:26
4745
3
原创 pytorch入门(七):unsqueeze
@TOC在这里插入代码片unsqueeze用来改变Tensor的维度,把低维的Tensor变为高维的Tensor。如3×4的Tensor,变为1×3×4、3×1×4、3×4×1的Tensor。先造一个3×4的Tensor,看看结果。a = torch.arange(12).reshape(3,4)print(a)tensor([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]])用squeeze做升维操作
2020-11-14 00:45:40
4847
原创 代码急转弯——什么是动态规划
代码急转弯——什么是动态规划1、递归2、备忘录3、计算顺序动态规划是解决计算问题的基本方法。它与递归非常相似,但又有所不同。下面以斐波那契哦数列的计算来说明动态规划的基本思想。1、递归斐波那契数列指的是x0=1x_0=1x0=1x1=1x_1=1x1=1xn=xn−1+xn−2,n=3,4,5,...x_n=x_{n-1}+x_{n-2}, n=3,4,5,...xn=xn−1+xn−2,n=3,4,5,...如果果要计算 f(10),需要先计算出 f(8) 和 f(9),然后就能由
2020-10-20 17:06:11
347
原创 代码急转弯——脑洞大开的优化
代码急转弯——两数之和1、nums[i] + nums[j] == x2、nums[j] == x给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。例如,给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]1、nums[i] + nums[j] == x
2020-10-15 03:12:52
238
原创 代码急转弯——环境的陷阱
代码急转弯——改不回去的代码在spyder中,输入一段代码,查看执行结果。把代码修改一下,再次运行发现有错,于是改回到最初的版本,但它还是不能运行。这是什么情况?输入代码一a = 1; print(a)运行结果1加一个语句,修改为如下代码二del aa = 1; print(a)运行结果1分号改逗号,修改为代码三del aa = 1, print(a)运行结果Traceback (most recent call last): File "E:\Python0\
2020-10-10 16:55:15
228
1
原创 pytorch入门(五):什么是广播运算?
什么是广播运算?1、概念2、规则3、应用4、转化5、向量运算6、升维7、降维8、随机数种子9、正态分布随机数10、随机整数11、函数12、求和13、点乘torch与numpy有不少相似之处,可看作gpu版本的numpy代码import numpy as npimport torch1、概念arangeprint(np.arange(6))print(torch.arange(6))结果[0 1 2 3 4 5]tensor([0, 1, 2, 3, 4, 5])2、规则改变形
2020-08-05 13:19:52
3416
原创 pytorch入门(四):gpu 比 cpu 快吗?
gpu 比 cpu 快吗? 早期的计算机是顺序执行程序的,每次执行一个程序中的一个函数。为了提高机器的利用率,允许机器同时执行多个程序或者多个函数,前者称为多进程,后者称为多线程,常采用基于任务的并行处理方式。gpu是一种基于数据的并行处理方式,它将数据分解为多个部分,在多个计算单元中分别计算。在pytorch中,只需要说明数据的位置即可。 一般来说,用cpu训练模型花费的时间比用gpu的用时要多出几十倍,但并非总是如此。下列代码分别对10×10、100×100、1000×1000元素的数组做加法运
2020-08-04 10:38:35
1538
原创 pytorch入门(三):加法的陷阱
如何执行加法?有几种方法执行加法运算先准备两个变量a、ba = torch.Tensor([1,1,1])b = torch.Tensor([2,3,4])第一种方法是写一个加法表达式c = a + bprint(c)结果tensor([3., 4., 5.])第二种方法是调用torch的加法函数c = torch.add(a, b)print(c)结果tensor([3., 4., 5.])也可以调用a的加法函数c = a.add(a, b)print(c)
2020-07-29 10:33:24
1756
原创 pytorch入门(二):numpy与pytorch(续)
比较numpy与pytorch的用法,涉及到分点、单值、切片、过滤、下标、转置、排序、量词、元素类型、维度、改变元素类型、全1、同形等基本操作。
2020-07-19 22:32:10
387
原创 pytorch入门(一):numpy与pytorch
torch与numpy有不少相似之处,可看作gpu版本的numpy。比较arange、reshape。matmil、mm、T、from_numpy、unsqueeze、sequeeze、seed、randn、normal、randint、sin、sum、mul、multiply等操作。
2020-07-19 18:22:26
1807
原创 LeetCode 赛题(航班预订统计)
5118.航班预订统计(LeetCode第 144 场周赛)这里有n个航班,它们分别从1到n进行编号。我们这儿有一份航班预订表,表中第i条预订记录bookings[i] = [i, j, k]意味着我们在从i到j的每个航班上预订了k个座位。请你返回一个长度为n的数组answer,按航班编号顺序返回每个航班上预订的座位数。示例:...
2019-07-08 00:44:23
1405
原创 【Python小问题】8>6 & 2>0 的陷阱
8>6 & 2>0的结果是多少?>>>8>6 & 2>0True好像挺简单的。交换一下顺序,2>0& 8>6,结果又是多少?>>>2>0& 8>6False这是什么鬼?先看一个类似的运算3<2+2&am
2019-01-06 09:32:39
1007
原创 推箱子游戏-用matlab找到解
一个简单的手机推箱子游戏图,自己没找到答案,只好编程求解了。复制代码后,以文件名move_box.m存盘,即可在matlab中执行。每次按下回车键,就会移动一次箱子。修改文件中的grds,可求解其他格局的问题。工人路径没有优化,所以有重复移动的现象。用C++实现的话,只需要5秒钟可求解。function [x]=move_box()set(0,'RecursionLimit',1000);clc;...
2018-06-09 06:55:31
1553
原创 numpy函数hstack,vstack,dstack简介
vstack、hstack和dstack都用于把几个小数组合并成一个大数组。它们的差别是小数组的元素在大数组中的排列顺序有所不同。把两部手机摆到一起有几种方式?水平的左右排列,垂直的上下排列,还可以把手机一扣在手机二的顶上,把它们摞起来。这三种排列方式体现了vstack、hstack和dstack在合并数组时的特点。一、vstack vstack实现了轴0合并。vstack的字母v表...
2018-04-11 11:59:57
25014
无监督学习入门 Hands-On Unsupervised Learning Using Python
2020-10-25
PyTorch 官方教程
2020-08-01
《贝叶斯数据分析(英文导读版·原书第3版)》(Bayesian Data Analysis)
2017-09-23
数据挖掘与分析 概念与算法(英文版)
2017-09-17
《Python机器学习实践指南》英文版
2017-09-08
深度学习(deep learning) ,伊恩·古德费洛()
2017-09-03
《R语言经典实例》
2013-10-09
《R语言实战》
2013-10-09
计算机科学丛书:数据挖掘与R语言
2013-10-08
《高效能程序员的修炼》英文版
2013-09-23
Java Web程序设计教程5
2011-08-03
Java Web程序设计教程4
2011-08-03
Java Web程序设计教程3
2011-08-03
Java Web程序设计教程2
2011-08-03
Java Web程序设计教程1
2011-08-03
软件开发者路线图从学徒到高手英文版.pdf
2010-09-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人