自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Spicrab

I LOVE Data Science

  • 博客(19)
  • 收藏
  • 关注

原创 复盘数据科学项目的五个问题

实习了九个月以后,最大的感触就是一味地埋头做事很简单,但只有不停地复盘与思考,才能取得快速的成长。为了复盘之前做过的数据科学、机器学习项目,列了一个问题大纲来引导自己的思考,可以作为参考:Objective目标是什么?需要解决的是什么问题?该问题处于业务的哪一步?Strategy用了什么方法完成目标?这里可以进一步拆解成几步:用了什么数据?进行了哪些预处理步骤?用了哪个算法?调了哪些Hyperparameters?模型最终的产出结果是什么?Measurement用什么metrics来

2021-03-08 09:35:26 169 1

原创 Pandas DataFrame| 按照字典dict替换Pandas DataFrame的值:三种方法性能比较

Setup需要将Pandas dataframe df中一列的值根据字典d进行替换,将数字1、2、3、4、5换成字符"number 1", “number 2”,以此类推。import numpy as npimport pandas as pdimport time# construct test datasetn = 1000000 # length of testsetd = {1:'number 1',2:'number 2',3:'number 3',4:'number 4',5:

2021-02-09 14:31:46 4447

原创 MySQL | ADDDATE与DATE_ADD的区别

在自己连续几次忘记syntax必须要重新google,并且adddate, add_date, dateadd, date_add傻傻分不清之后,决定记录一下MySQL里ADDDATE, DATE_ADD这两个函数的相同与不同。相同ADDDATE和DATE_ADD的基本syntax是一样的:ADDDATE(@date, INTERVAL value unit)例如:ADDDATE(@date, INTERVAL 3 DAY) # add 3 days to @dateDATE_ADD(@d

2021-01-14 20:50:17 1914

原创 LeetCode | 14. Longest Common Prefix的三种算法

问题Write a function to find the longest common prefix string amongst an array of strings.Solution 1: Binary Search Using Recursion大概的思路是:首先找到input中string的最小长度L,然后把每个string从L/2处一分为二,先比较[0, L/2]是否是common prefix。如果前一半是,则比较[L/2+1, 3/4*L];如果前一半不是,则比较[0,L/4]。

2021-01-03 18:42:07 166

原创 UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0x80 in position 1: invalid start byte

Error用pandas读取一个csv文件时出现该错误:import pandas as pddf = pd.read_csv('filename', index_col=0)error message为UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 1: invalid start byte.Solution虽然在检查了该csv文件后未发现第一行文本有问题,但这个错误一定与utf-8无法解码文本有关。在

2020-09-07 17:45:05 1896

原创 Latex | 添加带链接的目录

在latex中添加带有链接的目录页,可以用hyperref package完成:# import package\usepackage{hyperref}# setting\hypersetup{ colorlinks, citecolor=black, filecolor=black, urlcolor=black}\title{Paper Title}\author{author}\date{August 2020}\renewcommand*\con

2020-07-13 21:14:03 1035

原创 pandas DataFrame 几列字符串合并为一列的方法

问题DataFrame里有四列字符串,希望把它们合并为一列,新column形式为item1, item2, item3, item4。除了第一列一定有值以外,其余三列都可能是NA。遇到NA需要跳过,比如如果2、4是NA,结果应是item1, item3。解决np.where()可以用来解决NA的问题,代码如下:df = df.fillna('no_item') #将NA换成str,方便查NAdf['new'] = df['item1'] + \ np.where(df['item2']!='

2020-07-13 21:06:19 4539

原创 Python | Pandas DataFrame最常用的十二个方法总结

在data science领域,pandas是python最常用的library,而DataFrame又是pandas最核心的数据结构。用久了,发现与pandas DataFrame相关的常用的方法其实就那么几个,只要能熟练掌握便能解决大部分需求了。1. Create a pandas DataFrame如果数据已经以list的形式存在了的话,最常用的方法是直接pass in 一个字典,比如:import pandas as pdname_lst = ['John','Mike']age_lst

2020-06-21 01:09:54 1303

原创 Python append()的两个坑

Python append()的两个坑写Python的时候被append()这个简单又常用的方法不知道坑了多少次了……1. return None第一个坑:append()会修改原list,而不会return任何东西。正确:lst.append(new_item)错误:lst = lst.append(new_item) #此时lst就变成NoneType了注意:pandas DataFrame的append()恰恰相反,会return a new DataFrame:正确:

2020-06-15 23:26:37 1760

原创 Probability Theory | Coin Tossing Problems (TBC) | 概率论中的抛硬币问题 (未完待续)

Q1Question:Suppose we play a game. I roll a die up to three times. Each time I roll, you can either take the number showing as dollars, of roll again. What is your expected winnings?Solution:Let r...

2019-08-25 21:50:36 352

原创 Hackerrank | Hash Tables: Ransom Note解答

Hash Tables: Ransom Note原题点这里第一次尝试:失败def checkMagazine(magazine, note): for word in note: if word in magazine: magazine.remove(word) elif word not in magazine: ...

2019-08-06 22:06:53 280

原创 算法 | Five Steps to Dynamic Programming(解决动态规划问题的五个步骤)

动态规划(DP)是最常用的算法之一。它借助Divide and Conquer的思想,将一个问题分解为一个个渐进的subproblems(子问题),最终通过解决这些子问题来得到问题的终极答案。和recursion(递归)的不同,DP会将所有子问题的答案存在一个表格里,以达到方便提取、提升效率的作用。因此,用递归需要指数时间解决的问题,很多都可以用DP在多项式时间内解决。一个最常见的例子就是计算第...

2019-08-01 15:47:10 575

原创 Python | 如何安装并使用pip(Win10, Python3)

pip是最常用的Python package管理系统。通过get-pip,我们可以简便地在win10系统上安装pip:1. 下载并运行get-pip.py点击链接下载get-pip文件 —— 打开IDLE窗口 —— 打开并运行get-pip. py.如果没有问题的话,窗口会出现进度条提示并最终显示安装完成。2. 添加环境变量找到pip在电脑中的存储位置(默认应该在Python所在文件夹中...

2019-01-15 11:44:42 753

原创 MySQL | 零基础入门经验(3)使用Python操作MySQL

软件配置Connector/Python(3.6) 8.0建立数据库连接首先import模块:import mysql.connector下面建立与数据库的连接:try: conn=MySQLConnection(host='localhost', database='db', user=user, pas...

2018-06-29 22:49:00 302

原创 MySQL | 零基础入门经验(2)创建、查询数据表并插入数据

创建新表首先选定要进行操作的数据库:USE [database name];返回’database changed’,代表数据库选定成功。下面可以新建数据表了。比如,新建一个表格来存储宠物商店中待售动物的信息,包括:编号(主键),名字,种类,价格:CREATE TABLE pets(id INT PRIMARY KEY,name VARCHAR(10) not nul...

2018-06-28 16:18:37 389

原创 MySQL | 零基础入门经验(1)安装MySQL及创建数据库

安装MySQL登录MySQL官网,选择相应的安装包下载。目前最新版本是8.0。 下载完成后打开MySQL Installer - Community,开始安装。 这里建议手动选择一下安装的服务,不用全都装。个人只装了三个服务,分别是: - MySQL Server (version 8.0.11) - MySQL Shell (version 8.0.11) - Connector...

2018-06-27 17:05:08 630

原创 Python | Attribute Error: 'Nonetype' object has no attribute '__getitem__'

背景写一个计算中位数的方法,相关的代码是:new_list=list.sort()if len(list)%2==1: return new_list[(len(list)-1)/2]返回错误:'Nonetype' object has no attribute '__getitem__'问题Nonetype的错误说明,我们在某对象上试图使用一个方法或访问一个属性...

2018-06-23 18:06:28 16611 1

原创 基础架构、协议、通信整理

目录I. BS vs. CS架构CS ArchitectureBS ArchitectureII. HTTPIII. TCP/IP (Internet Protocol Suite)TCPUDPIPTCP与IPIV. REST资源URI as identifier统一资源接口无状态通信原则HyperMedia as the engine ...

2018-06-15 13:11:46 1255

原创 Markdown | win10系统MarkEditor转Sublime Text 3

原来win7系统用的是MarkEditor,界面清新非常好用,但在换成win10后出现了种种bug,因此想换一种方法编译Markdown。使用的软件是Sublime Text 3,本来就装有Markdown语言的syntax,因此只需要下载两个插件完成预览就行了。...

2018-06-02 19:38:00 341

空空如也

空空如也

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

TA关注的人

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