自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

用途:中英文学习笔记,如有侵权,可评论留言,及时清理;学历:NUS计算机硕士;SYSU地球物理学士

现主持开源项目:Geochemistry Pi (浙江大学),数据挖掘自动化Python框架,长期招聘远程科研实习生,有兴趣的友友可看博客置顶文章

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

原创 Geochemistry Pi 开源软件 - 数据挖掘自动化 - 浙大长期远程实习

Geochemistry π is a Python framework for data-driven geochemistry discovery. It provides an extendable tool and one-stop shop for geochemical data analysis on tabular data.

2023-02-10 20:54:19 1008 1

原创 什么是函数指针 | C语言

函数指针(Function Pointer)是指向函数的指针变量。在很多编程语言中,函数被视为一种可执行的代码块,而函数指针则是一个指向这个代码块的指针,使得程序可以动态地调用不同的函数。它们允许程序在运行时根据需要选择要调用的函数,从而增加了程序的灵活性和可扩展性。在这个例子中,funcPtr 是一个指向接受两个整数参数并返回整数的函数的指针。在C和C++等编程语言中,函数指针通常是指向特定函数类型的指针,即函数原型和返回类型都一致的函数。函数指针的语法类似于变量指针,但是它指向的是函数而不是数据。

2023-08-27 10:37:37 664

原创 lambda function 理论详解 & Python 实例解析 |Higher-order function|英文

lambda function详解

2022-10-14 15:50:52 907

转载 数据库三大范式与反范式的概念及解决的问题 | 本质+例子

数据库三大范式与反范式的概念及解决的问题概念:范式是设计表结构的标准。高阶范式在低阶范式的基础上冗余度更低,一般要让表的设计尽量满足第三范式(3NF),但有时为提高某些查询性能,要破坏范式,也即反范式。第一范式:表中的每个字段属性都是原子性的,不可分割;(比方讲你要记录地点,那你不能设计一个字段是 省+市 的格式,应该拆开来)第二范式:要求非主属性都要完全依赖于完整的(联合)主键;一张表只表达一个独立的意思。(比如说记录选手战绩的 选手战绩表,他的主键是 选手id+比赛id ,其他字段有 姓名、比

2022-03-13 15:21:43 1439 1

原创 Mac | Mendeley文献管理工具安装使用三步骤

步骤一:从官网下载Mendeley:https://www.mendeley.com/reference-management/reference-manager步骤二:下载Word插件:https://www.mendeley.com/reference-management/mendeley-cite步骤三:文献格式调整,从写英文文章用的文献的默认引用格式改为写中文文章的默认引用方式:https://blog.csdn.net/yitian_z/article/details/104050142.

2022-03-13 11:11:07 2990

原创 python的type hint类型注解 常用总结 | Pandas, Numpy, Union, Optional

type hint 类型注解: ⽤于IDE(如Pycharm) 形参的类型提示和检查,能指定参数的类型,函数的返回类型。# 什么是type hint,及其作⽤参考链接: https://sikasjc.github.io/2018/07/14/typehint-in-python/# 以下我罗列了每⼀个项⽬组成员可能涉及到的类型,给了相应的例⼦# str,int,返回值# 函数foo的参数p1传⼊类型为str, 参数p2传⼊类型为int,函数的返回值类型为strdef foo(p1: str,

2022-03-10 22:59:49 2511

原创 pycharm的type hint显示: pandas.DataFrame, pandas.Series & numpy.ndarray 初步尝试

问题:如何在pycharm上显示pandas.DataFrame, pandas.Series 或numpy.ndarray的类型注解?解决方案:先使用pip install data-science-typesimport pandas, numpy# 函数foo的参数p1传⼊类型为pandas.DataFrame,参数p2传⼊类型为pandas.Series,# 参数p3传⼊类型为numpy.ndarraydef foo(p1: pandas.DataFrame, p2: panda

2022-03-10 22:53:55 1193

原创 pandas.DataFrame 使用.std() 计算时出现nan值,并且nan值为float类型,如何快速替换成0

问题:对pandas的DataFrame 或者Series 使用自带的.std()方法,出现nan值,为什么会出现?怎么最快的方式替换成0?>>> a = pd.Series([1, 2])Out[1]:0 11 2dtype: int64>>> a.std()Out[2]: 0.7071067811865476>>> b = pd.Series([1])Out[3]: array([1])>>>

2021-08-12 22:24:30 3762

原创 散列查找(哈希表)| 计算位置 & 解决冲突

#define MAXTABLESIZE 100000 // 允许开辟的最大散列表长度typedef int ElementType; // 关键词类型用整型typedef int Index; // 散列地址类型typedef Index Position; // 数据所在位置与散列地址是同一类型// 散列单元状态类型,分别对应:有合法元素、空单元、有已删除元素typedef enum { Legitimate,...

2021-05-19 22:15:41 345

原创 串的模式匹配 | KMP算法

当j增加1时,j的match值有两种情况#include <stdio.h>#include <string.h>#include <stdlib.h>typedef int Position;#define NotFound -1void BuildMatch(char *pattern, int *match){ // 为pattern建立相应的match值 Position i, j; int m = str...

2021-05-15 10:56:43 179

原创 加减运算与溢出判断& 符号扩展

原码和补码表示的范围不够,因此会有溢出用硬件判断溢出的方式参考资料:《王道考研》

2021-05-09 06:32:11 318

原创 ASCII码(英文编码)& 汉字编码 | 字节编址 (大小端模式)

参考资料:《王道考研》

2021-05-08 20:28:31 305

原创 计算机的加减乘除运算本质 | 模运算 & 移位操作

例题里a的补数实质上就是有符号数-14的补码参考资料:《王道考研》

2021-05-08 20:23:49 249 2

原创 Linux常见的目录结构及作用

参考书籍:《Linux实用教程》

2021-05-01 10:27:47 159

原创 数字信号分析学习思想整理 | 基本框架

1.信号分析的基本思路:在不同的表达域把信号分解成简单信号的线性组合,通过对构成信号的基本单元的了解达到掌握信号特性的目的。2.信号的时域分析:通常是将连续时间信号表示为单位冲激信号δ(t)\delta(t)δ(t)的加权积分,将离散时间信号表示为单位脉冲信号δ(n)\delta(n)δ(n)的加权和。3.信号的频域分析:将连续时间信号表示为复指数信号(或谐波信号)ejwte^{jwt}ejwt的加权积分,将离散时间信号表示为复指数信号ejΩne^{j\Omega n}ejΩn的加权和。4.时域与频域

2021-04-17 15:52:45 1632 1

原创 DataWhale | WisdomOcean项目 | 数据分析 | 学习笔记(二)

赛题要求:通过分析渔船北斗设备位置数据,具体判断出是拖网作业、围网作业还是流刺网作业,本质是“轨迹(序列数据)+多分类”的任务,评估指标选用的是F1值。可能存在的特征工程切入点:表征渔船的轨迹表征渔船不同状态下的信息轨迹数据数据分析:基于不同类型渔船的轨迹可视化结果可知,其轨迹虽然有不同变化,但是仍然不具有很强的区分性。基于不同类型渔船的方向可视化结果可知,每个类别的渔船方向变化很快,因此此特征对于类别的判断不具有很强的区分性。基于不同类型渔船的轨迹速度分布图和分位图可知,其存在差异很大

2021-04-16 23:42:45 214

原创 DataWhale | WisdomOcean项目 | Python 地理空间数据处理 | 学习笔记(一)

Python地理空间数据处理常用库主要功能:(一)Shapely是python中开源的空间几何对象库,支持Point(点),LineString(线), Polygon(面)等几何对象及相关空间操作。几何对象可以和numpy.array互相转换。可以求线的长度(length),面的面积(area),对象之间的距离(distance),最小最大距离(hausdorff_distance)。可以对几何对象求几何中心(centroid),缓冲区(buffer),最小旋转外接矩形(minimum_rot

2021-04-15 00:04:07 212

原创 XPath解析库的使用详解

参考书籍:《Python3 网络爬虫开发实战》

2021-04-12 16:11:22 104

原创 为什么爬虫时需要设置Cookie值

参考书籍:《Python3网络爬虫开发实战》

2021-04-12 15:59:08 517

原创 爬虫返回状态码“521” 解决方案 | 设置Cookie解决

问题:在爬虫某个网页时,返回状态码为”521“,如何解决?Code:import requestsdef get_one_page(url): headers = { 'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36' } respons

2021-04-12 15:56:09 5120

原创 为什么用requests爬虫时需要User-Agent | python

参考书籍:《python3网络爬虫开发实战》

2021-04-12 14:10:11 281

原创 制作三维旋转动图(以三维PCA图为例)| Python

问题:如何用python绘制能够旋转的三维动图解决:Codeimport matplotlib.pyplot as pltfrom matplotlib import animation import numpy as npdef componential_plot_animated_3d(reduced_data, labels, pc, variable): """draw a animated componential plot in 3d for three principle

2021-04-10 13:04:27 3406 7

原创 re库 | 正则表达式必须掌握的基本用法 | Python

参考书籍: 《Python3网络爬虫开发实战》

2021-04-09 17:02:45 90

原创 计算机系统的层次结构 & 三种级别的语言(编译型和解释型)

针对相同的代码,编译型语言只需翻译一次,解释型语言每次出现都需要翻译.exe文件就是机器语言描述的程序,无需编译,只用加载即可运行

2021-04-08 13:18:36 587

原创 主存储器、运算器、控制器的基本组成 & 具体的工作过程

字(word)的大小需要看具体的计算机,可能是8bit,16bit,32bit,64bit宽带一般会说100Mbps ,下载时会显示10MB/s ,注意B和b的单位现在的计算机通常把MAR,MDR也集成在CPU内完成一条指令的三步骤:PC: 取指令IR:分析指令CU:执行指令...

2021-04-08 10:28:47 966

转载 Anaconda入门指南

概述很多学习python的初学者甚至学了有一段时间的人接触到anaconda或者其他虚拟环境工具时觉得无从下手, 其主要原因就是不明白这些工具究竟有什么用, 是用来做什么的, 为什么要这么做, 比如笔者一开始也是不明白为啥除了python之外我还需要这么一个东西, 他和python到底有啥联系和区别, 为啥能用来管理python.在使用过之后我才逐渐发现其实anaconda等环境管理工具究竟在做啥, 以及为什么我们需要他们来管理我们的python环境首先我们需要先去了解Anaconda诞生的目的.再去

2021-04-07 23:56:23 579

原创 PCA图 (主成分 biplot & 三维图) 绘制与解释 | python

问题:如何绘制二维的主成分图,以及如何解释?Code:import matplotlib.pyplot as pltimport numpy as npdef biplot(reduced_data, labels, pc, variable): """plot compositional biplot for two principle components :param reduced_data: data processed by PCA :param la

2021-04-05 22:12:37 20597 5

原创 分类问题之决策阈值 - precision vs recall 详解

什么是决策阈值?sklearn没有让我们直接设置决策阈值,但它让我们可以访问用于进行预测的决策得分(决策函数o/p)。我们可以从决策函数输出中选择最佳得分,并将其设置为决策阈值,并将小于该决策阈值的所有决策得分值视为负类(0),大于该决策阈值的所有决策得分值视为正类(1)。使用各种决策阈值的精度-召回率曲线,我们可以选择决策阈值的最佳值,以便根据我们的项目是面向精度还是面向召回率分别给出高精度(不太影响召回率)或高召回率(不太影响精度)。这样做的主要目的是根据我们的ML项目分别是面向精度的还是面向召回

2021-04-02 00:03:41 6874 2

原创 sklearn的decision_function (以SVC.decision_function()为例)详解

decision function是sklearn机器学习框架的分类器类中的一种method。该method基本上返回一个Numpy数组,其中每个元素表示分类器对x_test的预测样本是位于超平面的右侧还是左侧,以及离超平面有多远。它还告诉我们,分类器为x_test预测的每个值是正值(大幅度正值),还是负值(大幅度负值),以及相应的信任程度。decision function method背后的数学:让我们考虑SVM对于线性可分二进制类的分类问题:损失函数:这种线性可分的二分类的假设:优化算

2021-04-01 23:28:02 11728

原创 基数排序 | 主位优先 & 次位优先 | C语言

一、桶排序二、基数排序

2021-03-25 10:39:39 503

原创 快速排序 | 分而治之 |C语言

ElementType Median3(ElementType A[], int Left, int Right){ int Center = (Left+Right) / 2; if (A[Left] > A[Center]) { Swap(&A[Left], &A[Center]); } if (A[Left] > A[Right]) { Swap(&A[Left], &A[Right]...

2021-03-21 15:12:51 164

原创 归并排序 | 递归 & 非递归 |C语言

// L = 左边起始位置,R = 右边起始位置,RightEnd = 右边终点位置void Merge(ElementType A[], ElementType TmpA[], int L, int R, int RightEnd){ // 将有序的A[L]~A[R-1]和A[R]~A[RightEnd]归并成一个有序序列 int LeftEnd, NumElements, Tmp; int i; LeftEnd = R - 1; // 左边终点位置 ...

2021-03-17 17:50:12 188

原创 希尔排序 | 增量序列 + 插入排序实现 | C语言

一、插入排序void Insertion_Sort(ElementType A[], int N){ for (P = 1; p < N; P++) { Tmp = A[P]; // 取出未排序序列中的第一个元素 for (i = p; i > 0 && A[i-1] > Tmp; i--) { A[i] = A[i-1]; // 依次与已排序序列中元素比较并右移 } ...

2021-03-13 15:10:03 339

原创 拓扑排序 | 队列实现 | C语言

bool TopSort(LGraph Graph, Vertex TopOrder[]){ // 对Graph进行拓扑排序,TopOrder[]顺序存储排序后的顶点下标 int Indegree[MaxVertexNum], cnt; Vertex V; PtrToAdjVNode W; Queue Q = CreateQueue(Graph->Nv); // 初始化Indegree[] for (V=0; V<...

2021-03-09 12:48:54 587

原创 最小生成树 | Prim算法 & Kruskal算法 |C语言

一、Prim算法MST收集的是顶点;这里的dist[]是指结点V到最小生成树的最小距离;当dist[V] = 0 时,表明结点V被收录到最小生成树中, 如果dist[W] != 0,表明结点W还没被收录;使用parent[s]来存储树,记录当前结点的父结点位置;图 | 邻接矩阵表示 & 邻接表表示 | C语言Vertex FindMinDist(MGraph Graph, WeightType dist[]){ // 返回未被收录顶点中dist最小者 Verte..

2021-03-08 21:44:47 436

原创 哈利波特的考试 | Floyd算法(邻接矩阵实现)|C语言

题目:先找到各顶点(某种动物)到(变化到)其他顶点(动物)所需路径的最大值(所念咒语的长度),再从所有最大值中找到最小值。#include "harry_exam.h"#define MAxVertexNum 100 // 最大顶点数设为#define INFINITY 65535 // 正无穷设为双字节无符号整数的最大值65535typedef int Vertex; // 用顶点下标表示顶点,为整型typedef int WeightType; // 边的权值设为

2021-03-06 15:40:18 686

原创 最短路径 | 单源(Dijkstra算法)& 多源(Floyd算法) |C语言

一、无权图的单源最短路算法void Unweighted(LGraph Graph, int dist[], int path[], Vertex S){ Queue Q; Vertex V; PtrToAdjVNode W; Q = CreateQueue(Graph->Nv); // 创建空队列,MaxSize为外部定义的常数 dist[S] = 0; // 初始化源点 AddQ(Q, S); whil...

2021-03-05 12:27:03 737 2

原创 完全二叉搜索树 | 排序 & 层序遍历(数组实现)| C语言

void solve(int ALeft, int ARight, int TRoot){ // 初始调用为 solve(0, N-1, 0) // ALeft是排序后的输入序列A的左端点数组下标,ARight是右端点数组下标 // TRoot是结果树序列的数组下标 n = ARight - ALeft + 1; if (n==0) return; L = GetLeftLength(n); // 计算出n个结点的树其左子树有多少个结点 T[T...

2021-02-27 11:37:43 280

原创 图的遍历 | 深度优先搜索 & 广度优先搜索 | C语言

图 | 邻接矩阵表示 & 邻接表表示 | C语言// 用邻接表实现深度优先搜索void Visit(Vertex V){ printf("正在访问顶点%d\n", V);}// Visited[]为全局变量,已经初始化为falsevoid DFS(LGraph Graph, Vertex V, void (*Visit)(Vertex)){ // 以V为出发点对领接表存储的图Graph进行DFS搜索 PtrToAdjVNode W; Vi..

2021-02-22 15:48:43 387 1

原创 图 | 邻接矩阵表示 & 邻接表表示 | C语言

一、邻接矩阵#define MaxVerNum 100 // 最大顶点数设为100#define INFINITY 65535 // 正无穷设为双字节无符号整数的最大值65535typedef int Vertex; // 用顶点下标表示顶点,为整型typedef int WeightType; // 边的权值设为整型typedef char DataType; // 顶点存储的数据类型设为字符型// 边的定义typedef struct ENode *PtrTo..

2021-02-22 12:50:37 491

空空如也

空空如也

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

TA关注的人

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