
笔记
热衷开源的宝藏Boy
努力践行将学习的本质与机器学习完美结合!
展开
-
2021-01-02
1.hey,I heard we’ll be working together on the new projects.2.I’m looking forward to collaborating with so many different people.3.Everyone has different skills.Collec原创 2021-01-02 17:06:34 · 92 阅读 · 0 评论 -
产品经理的工作方法论
今天的主要话题是需求管理、需求池与版本迭代。前文说到,作为产品经理,需求分析的核心方法分别为:在遇见单个需求时,首先要分析用户、场景、问题以及现有解决方案,利用思维导图将思考过程完整记录并梳理,从中筛选并提炼出最有价值的信息与开发方向。在遇见海量需求时,要明确需求优先级排序原则,逐一运用四象限分析法来判断,然后再结合公司产品发展阶段与具体场景来思考。这些都是十分具体而复杂多样的,在日常工作中,我们难免遇到各式各样的需求,第二篇文章中我也有所提及,例如:场馆需要增加视频入口,从而扩大现场曝光,突出智原创 2020-12-30 10:21:57 · 565 阅读 · 1 评论 -
数据分析师成长路径
1.入门期——为业务提供基础的数据支持1.1入门目标一:用数据分析解决简单的业务问题推荐书籍《深入浅出的数据分析》1.2入门目标二:SQL七大核心语句、表连接、子查询推荐资源:未明学院SQL零基础教程+SQLLzoo刷题1.3目标三:数据处理和整理Excel+数据透视表推荐资视频源:则秀老死课程1.4目标四:图标制作(Excel+BI)推荐资源:未明学院Tebleau零基础教程2.大佬期---数据分析思维,实际解决问题2.1.目标1:直面问题,..原创 2020-12-21 00:12:11 · 480 阅读 · 0 评论 -
数据库相关知识点
1.主键、外键主键:在数据库以惟一完整标识存储外键:在另外的表为主键的,在这个表不是主键2.为什么用自增列为主键保持唯一性、便于查询。3.什么是存储过程是预编译的SQL语句4.存储过程的优点执行效率高、减少网络通讯、安全性高、可以重复使用5.视图虚拟的表、具有与物理表相同的功能。可以对视图进行增改查操作6.游标对查询结果集作为一个单元来有效的处理。游标可以定位为到该表的特定行7.视图的优缺点优点:1.可以选择性选取数据原创 2020-12-20 13:21:13 · 115 阅读 · 1 评论 -
数据库性能优化
1.数据库访问优化法则从图上可以看到基本上每种设备都有两个指标:延时(响应时间):表示硬件的突发处理能力;带宽(吞吐量):代表硬件持续处理能力。性能优化法则漏斗图这个优化法则归纳为5个层次:1、减少数据访问(减少磁盘访问) 2、返回更少数据(减少网络传输或磁盘访问) 3、减少交互次数(减少网络传输) 4、减少服务器CPU开销(减少CPU及内存开销) 5、利用更多资源(增加资源)二、Oracle数据库两个基本概念数...原创 2020-12-19 22:57:47 · 433 阅读 · 1 评论 -
数据库如何建表?一对多、多对一、一对一、多对多!
技巧:一对多/多对一关系简记:“多”的要记住“一”的主键,即每个球员表都要通过外键来记住球队表。一对多、多对一最普遍的情况。多的一方要保存一的一方的主键pk作为外键fk。一对一:随便一方记住另外一方的主键作为外键。多对多:一般采取中间表,转化为一对多的关系参考资料https://blog.youkuaiyun.com/weixin_41547486/article/details/80683496https://blog.youkuaiyun.com/z...原创 2020-12-19 17:13:03 · 2323 阅读 · 2 评论 -
python的可变与不可变数据类型
可变:列表、字典 赋予不同变量但相同的列表或字典,都会为每个变量建立一个对象,对每个对象操作都不会引起地址变化。 不可变:整型、float、string、tuple 赋予不同变量相同的值,不会产生多个对象,只有一个对象,计数器记录引用的个数,当计数器为零,垃圾回收机制回收。 ...原创 2020-12-16 22:48:03 · 113 阅读 · 0 评论 -
关于斐波那契数列:如何优化时间复杂度
1.原始写法def fib(n): if n<=0: return 0 elif n == 1: return 1 else: Return fib(n-1)+fib(n-2)2.优化写法:定义一个字典记录已经计算过的Know = {0:0,1:1}def fib(n): if n in Know: Return Know[n] else: Res = ..原创 2020-12-16 21:56:03 · 455 阅读 · 0 评论 -
Python按键key或值value对字典进行排序
1.按键key对字典内部排序dict={}sorted(dict)默认按键升序对字典列表排序lis = [{ "name" : "Taobao", "age" : 100}, { "name" : "Runoob", "age" : 7 }, { "name" : "Google", "age" : 100 }, { "name" : "Wiki" , "age" : 200 }] # 通过 age 升序排序print ("列表通过 age 升序排序: ")prin原创 2020-12-16 21:39:35 · 284 阅读 · 1 评论 -
python的交集、并集、差集、对称差集
1.交集x & y# 交集2.并集x | y# 并集3.差集x-y# 差集4.对称差集a_list = [1, 2, 3, 4, 5]b_list = [1, 4, 5]ret_list = list(set(a_list)^set(b_list))print(ret_list)参考资料https://blog.youkuaiyun.com/weixin_42575020/article/details/100038435...原创 2020-12-16 20:57:58 · 512 阅读 · 0 评论 -
Python 字符串前面加u,r,b的含义
1.u以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。2.r例:r"\n\n\n\n” # 表示一个普通生字符串 \n\n\n\n,而不表示换行了。作用:去掉反斜杠的转义机制。常用于re正则模块。3.bb" "前缀表示:后面字符串是bytes 类型。网络编程中,服务器和浏览器只认bytes 类型数据。附:在 Python3 中,bytes 和 str 的互相转换方式是str.encode('utf.原创 2020-12-16 20:26:28 · 120 阅读 · 0 评论 -
uWSGI、WSGI和uwsgi、nginx
WSGIwsgi server (比如uWSGI) 要和 wsgi application(比如django )交互,uwsgi需要将过来的请求转给django 处理,那么uWSGI 和 django的交互和调用就需要一个统一的规范,这个规范就是WSGI WSGI(Web Server Gateway Interface)WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是...原创 2020-12-15 18:25:04 · 316 阅读 · 0 评论 -
python redis
1.开启服务 ./redis-server2.安装redissudo pip3 install redis或sudo easy_install redis或sudo python setup.py install3.建立连接import redisr = redis.StrictRedis(host='localhost', port=6379, db=0)r.set('foo', 'bar')Truer.get('foo')'bar'4.实例impor原创 2020-12-15 10:10:46 · 118 阅读 · 0 评论 -
使用Python 的ORM框架Alchemy操作数据库
1.创建表conding:utf-8import sqlalchemyfrom sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column,Integer,String #区分大小写#创建连接engine=create_engine("mysql+pymysql://root:123456@localhost/ces原创 2020-12-15 09:16:39 · 209 阅读 · 0 评论 -
ORM对象关系映射
1.定义一种为了解决面向对象与面向关系数据库存在的互不匹配的现象的技术;简单的说,ORM 是通过使用描述对象和数据库之间映射的元数据,将java 程序中的对象自动持久化到关系数据库中;本质上就是将数据从一种形式转换到另外一种形式。2.不足1.持久化层缺乏弹性。一旦出现业务需求的变更,就必须修改持久化层的接口2.持久化层同时与域模型与关系数据库模型绑定,不管域模型还是关系数据库模型发生变化,毒药修改持久化曾的相关程序代码,增加了软件的维护难度。3.优点ORM解决的..原创 2020-12-14 21:18:43 · 407 阅读 · 0 评论 -
详解高并发
1什么是高并发高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。2指标响应时间(Response Time):系统对请求作出响应的时间 吞吐量(Throughput):单位时间系统处理的请求数量 每秒查询率QPS(Query Per Second) 并发用户数等。3.如何提高并发能力3.1垂直扩展:提高单机处理能力3.2水平扩展:增加服务器数量。4.常见互联网分层架构.原创 2020-12-14 21:00:23 · 258 阅读 · 0 评论 -
python线程池
线程池什么时候使用线程池当程序中需要创建大量生存期很短暂的线程时,更应该考虑使用线程池。线程池原理线程池在系统启动时即创建大量空闲的线程,程序只要将一个函数提交给线程池,线程池就会启动一个空闲的线程来执行它。当该函数执行结束后,该线程并不会死亡,而是再次返回到线程池中变成空闲状态,等待执行下一个函数。作用可以控制并发多线程的数量,不会导致系统崩溃线程池使用concurrent.futures.Executor 提供了两个子类ThreadPoolExecutor :用于创建原创 2020-12-14 19:14:58 · 159 阅读 · 0 评论 -
Python多线程join()用法
Python多线程与多进程中join()方法的效果是相同的。下面仅以多线程为例:首先需要明确几个概念:知识点一:当一个进程启动之后,会默认产生一个主线程,因为线程是程序执行流的最小单元,当设置多线程时,主线程会创建多个子线程,在python中,默认情况下(其实就是setDaemon(False)),主线程执行完自己的任务以后,就退出了,此时子线程会继续执行自己的任务,直到自己的任务结束,例子见下面一。知识点二:当我们使用setDaemon(True)方法,设置子线程为守护线程时,主线程一原创 2020-12-14 18:48:16 · 212 阅读 · 0 评论 -
python的lambda、filter、map、reduce表达式
Lambda函数也称匿名函数,相比于def,lambda无需定义函数,方便快速定义函数,不用担心函数名冲突看看def和lambda的区别def g(x): return x+1g = lambda x:x+1使用print(g(2))3不难可以看出lambda更加简洁filterfoo = [2, 18, 9, 22, 17, 24, 8, 12, 27]print filter(lambda x: x % 3 == 0, foo)[18, 9,原创 2020-12-13 14:52:46 · 94 阅读 · 0 评论 -
MVP设计模式
MVP与MVC模式的关系Model–view–presenter (MVP) 是model–view–controller (MVC)设计模式派生出来的。MVP的由来按照MVC的分层,Activity和Fragment(后面只说Activity)应该属于View层,用于展示UI界面,以及接收用户的输入,此外还要承担一些生命周期的工作。Activity是在Android开发中充当非常重要的角色,特别是TA的生命周期的功能,所以开发的时候我们经常把一些业务逻辑直接写在Activity里面,这非常直观原创 2020-12-13 10:38:04 · 331 阅读 · 0 评论 -
从生活悟出MVC的设计框架
MVC设计目的:解耦,让不同的代码块之间降低耦合性,增强代码的可扩展性和可读性、可移植性。实现向后兼容。MVC示意图:MVC框架M:model,模型,主要对数据库层的访问,对数据库中的数据进行增删改查V,view,视图,用于封装结果,生成html内容C,controller,控制器,用于接收请求,处理业务逻辑,连接Model与View(Model与View不能直接交互)Django的设计模式MVTDjango的设计模式遵循MVC方法论Django的MTV与MVC的原创 2020-12-12 22:16:33 · 117 阅读 · 0 评论 -
装饰器详解
装饰器Decorator Pattern向已有的对象添加新的功能,同时又不改变其结构目的:动态给一个对象添加新的功能,装饰器相比于生成子类更加灵活解决:我们为了扩展一个类使用继承方式,导致子类很冗余。优点:装饰类和被装饰类可以独立发展,不会相互耦合、缺点:多层装饰比较复杂使用场景:扩展一个类的功能,动态增加一个类的功能,和动态撤销注意事项:可以代替继承函数也是一个对象,因此可以将函数赋给变量,像>>> def now():... pri.原创 2020-12-12 17:47:03 · 459 阅读 · 0 评论 -
线程进程知识框架
进程线程进程定义是程序的一次执行顺序执行所发生的活动在数据集上运行的过程特征 1.动态性 具有创建、就绪、阻塞、运行、结束的状态 2.并发性 指多个程序能在一个时间段内同时执行 3.独立性 独立运行、独立获取资源 4.异步性 指各自独立、不可预知的速度向前推进状态 1.就绪 2.执行 3.阻塞 4.挂起 4.1用户需要 4.2父进程请求 4.3负荷调节 4.4操作系统的需要PCB(程序控制块程序独立运原创 2020-12-12 12:49:09 · 221 阅读 · 0 评论 -
并发与并行概念的深刻理解
并发和并行都给用户营造了程序'同时'运行的感觉但是属性 并发 并行 相对对象 单核CPU 多核CPU 是否真正实现同时运行 因为一个CPU只能运行一个程序,所以并发是通过时间片快速上下文切换,给用户营造'同时'运行的感觉 因为有多个CPU,也就是能在同一时刻,每个CPU都能运行一个程序,实现真正的同时运行 相对于人的感觉 多个程序在同时运行 多个程序在同时运行 ...原创 2020-12-12 09:46:28 · 89 阅读 · 0 评论 -
配置深度学习GPU环境
安装CUDAhttps://developer.nvidia.com/cuda-90-download-archive根据自己 版本下载安装cuDNN 从https://developer.nvidia.com/cudnn上下载cudnn相应版本的压缩包(可能需要注册或登录)。 如果这个压缩包不是.tgz格式的,把这个压缩包重命名为.tgz格式。解压当前的.tgz格式的软件包到系统中的任意路径,解压后的文件夹名为cuda,文件夹中包含三个文件夹:一个为include,另一个为li原创 2020-12-10 14:24:51 · 182 阅读 · 0 评论 -
CUDA与GPU面试题
CUDA概念sp:小核(流处理器)最基本的处理单元 sm:大核(流多处理器) wrap:GPU执行程序的调度单位 grid:有多个block block:有多个thread thread利用图形API和CUDA进行GPU通用计算的性能差别需要将问题转化成图形学,而CUDA使用C语言编写,适合做通用计算GPU指令和CPU指令 最大区别:CPU需要运行OS,不但要处理中断,还要负责存储器空间分配回收,GPU不需要做这些,所以GPU很空闲GPU架构缺点:精度问题,编程模式不太灵活CP原创 2020-12-10 14:16:00 · 2754 阅读 · 2 评论 -
websocket面试题
WebSocket(为了实现客户端、浏览器实时与服务器通信)是HTML5的一种新的协议,Websocket是真正实现了全双工通信的服务器向客户端的互联网技术,是单个TCP连接上进行全双工通信协议全双工通讯传输协议允许数据在两个方向上同时传输 。双向传输的意思半双工:可以双向传输,但是同一时刻只能一个方向传输 半工:单向传输数据 WebSocket与Socket的区别 WebSocket拥有完整的应用层协议,包含一套标准的API Socket是一组接口,是应用层与TCP/IP协议通信原创 2020-12-10 13:46:53 · 8258 阅读 · 0 评论 -
linux维护命令
ifconfig显示网络信息vi 更改文件iwconfig 显示无限网络sudoservice network start|restart 网络启动|重启wget 下载命令sudo dhclient 从dhcp服务器获取IP地址grep 查找文件里符合条件的字符串tar -zxpf 解压缩文件命令hostname 查看主机名字yum 安装命令grep on 列出所有启动的服务mkdir 创建文件夹fdisk -l 查看硬盘使用情况env 查看环境变..原创 2020-12-08 23:08:07 · 108 阅读 · 0 评论 -
win10快捷键大全
转自截屏Shift+Win+S按此键 执行此操作Ctrl + X 剪切选定项Ctrl + C(或 Ctrl + Insert) 复制选定项Ctrl + V(或 Shift + Insert) 粘贴选定项Ctrl + Z 撤消操作Alt + Tab 在打开的应用之间切换Alt + F4 关闭活动项,或者退出活动应用Windows 徽标键 + L 锁定电脑Windows 徽标键 + D 显示和隐藏桌面F2 重命名选定项F3 在文件资源管理器中搜索文件或文件夹F4 在文件资源管理器中显原创 2020-10-21 09:01:21 · 524 阅读 · 2 评论 -
cmd进入其他盘命令
cd /d ''原创 2020-10-20 17:47:12 · 219 阅读 · 0 评论 -
Python位运算
label = label ^(1 << (label.bit_length() - 1)) - 1对部分位取反0000原创 2020-03-05 14:18:45 · 142 阅读 · 0 评论 -
python位运算
label = label ^(1 << (label.bit_length() - 1)) - 1原创 2020-03-30 18:17:06 · 265 阅读 · 0 评论 -
十大算法总结
冒泡算法它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。选择排序它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末...原创 2020-02-28 22:45:55 · 241 阅读 · 0 评论