Pandas常用知识点

Pandas用户指南 查看能多[翻译]: https://www.osgeo.cn/pandas/user_guide/index.html 查看更多[官方]: https://pandas.pydata.org/docs/user_guide/index.html 创建对象 Series 一维数据 class pandas.Series(data=None, index=None, d...

继续阅读 »

Python中的冷知识

可变对象与不可变对象 为了理解对象的可变与不可变, 首先理解什么是变量, 什么是对象 在 Python 中,变量都是指针;指针的内存空间与数据类型无关,其内存空间保存了指向数据的内存地址。 在 Python 中,一切皆对象,其主要由以下部分组成: identity(ID):标识对象的“内存地址”,可使用 id(obj) 获取(唯一标识) type(类型):标识对象的“类型”,可使用 typ...

继续阅读 »

关于进程/线程/协程以及一些相关概念的整理

本文涉及到的一些概念 多线程发展史 并发与并行 CPU的密集型(CPU-Bound) IO密集型 (I/O Bound) 各种IO模型 各种并发模型 多线程发展史 起因:如何最大化的利用CPU CPU运算速度和IO速度的不平衡一直是计算机优化的一个课题,我们都知道CPU运算速度要以百倍千倍程度快于IO的速度,而在进行任务的执行的时候往往都会需要进行数据的IO(涉及硬盘io,网络io,内存...

继续阅读 »

关于try catch的理解问题

以下来自于知乎的一位网友对try catch的理解, 并拿之和go的err做比较, 针对try catch说的比较好理解~~ 我们不谈Java的checked exception。这货在其他语言里面并不多见。我们只谈一般的异常处理。好,那么,throw是什么很差的设计么?当然不是。throw再差也比err code强。为什么呢?你仔细想想,throw和return从逻辑上(注意:抽象地从逻辑...

继续阅读 »

游戏中自动寻路算法: A*、NavMesh、WayPoint

注意: 这里可以查看https://github.com/qiao/PathFinding.js各种寻路算法,并查看其在线演示. A*(基础算法) 优点 简单,易于实现 对地图编辑器友好 特定方格的消耗/可通行性易于修改,当然重新加权的方格太多也会影响速度 从游戏地图位置容易映射到方格位置,坐标除以每个网格的边长即可 缺点 对于大型地图,方格属于内存密集型 通常需要对所得的路径进行路...

继续阅读 »

C#高级特性之LINQ(语言集成查询)

什么是linq, 它解决了什么问题 在工程中我们少不了要定义类或者结构去储存数据,这些数据将被临时地储存在内存中,现在我们想要对其完成一些类似于查找、过滤等等常见的任务的时候,我们该如何去做呢? 以前我们可以自己写代码去对集合中的每个对象进行遍历,检查变量的每个字段看其是否满足条件。 LINQ(Language Integrated Query)即语言集成查询, linq可以像SQL一样用来...

继续阅读 »

微信/支付宝个人免签收款方案

项目简介 多用户个人微信/支付宝免签收款方案基本功能列表 服务端 后台登录 添加应用,生成Appid(应用ID), Secret(秘钥), notify_url(开发者服务器), return_url(支付成功后跳转) 接收客户端的支付成功请求API 服务端通知开发者服务器API(失败延迟通知) 订单管理 收款码管理 支付方式(微信/支付宝) 监控端(收款监控,多个方案) [安卓]xp...

继续阅读 »

从0到1构建python web框架

框架功能 第一部分: WSGI(gunicorn)/请求处理程序/路由(简单和参数化) 新建项目gunicorn安装 # 新建项目目录 mkdir longfei cd longfei python -m venv venv # 创建虚拟环境 source venv/bin/activate # 激活虚拟环境 pip install gunicorn # 安装WSGI服务器 项目目录中, ...

继续阅读 »

通俗的理解设计模式-23种设计模式

设计模式的七大原则 开放-封闭原则 通俗:对扩展开放,对修改关闭 单一职责原则 通俗:一个类只做一件事 依赖倒转原则 通俗:程序代码中传递参数时或在关联关系中,尽量引用层次高的抽象层类,而不要用具体类来做这些事情。 迪米特法则(最少知道原则) 通俗:高内聚,低耦合。类对自己依赖的类知道的越少越好。 接口隔离原则 通俗:最小的接口, 互不关联的接口独立出来减少依赖 合成...

继续阅读 »

Python的import详解与模块自动加载

import与sys.path 模块import导入顺序 在 sys.modules 中查找,它缓存了所有已导入的模块, 这里默认在运行前会自动加载内置库. 此变量中包括了解释器的内置库,即在sys.builtin_module_names中搜索,返回第一个找到的结果 在 sys.meta_path 中查找,它支持自定义的加载器 按顺序在sys.path中搜索,排在前面的优先被找...

继续阅读 »

python的魔术方法大全与属性

魔法方法指南 Python魔法方法指南: https://github.com/MrKiven/PyZh/blob/master/docs/python-magic-methods-guide.rst 魔术方法和内建属性 Python中有大量类似__dict__这种以双下划线开头和结尾的特殊成员及“魔法方法”,它们有着非常重要的地位和作用,也是Python语言独具特色的语法之一!重写魔术...

继续阅读 »

Anaconda是专注于数据分析的Python发行版本

Anaconda是专注于数据分析的Python发行版本,包含了conda、Python等190多个科学包及其依赖项。注意pip和conda是两个不同的东西,它们的包安装地址都不一样,不要混淆了。 为什么选择Anaconda 什么是 conda conda 是开源包(packages)和虚拟环境(environment)的管理系统。 packages 管理:一个类似于pip的包管理工具,不同...

继续阅读 »

Schedule—简单实用的 Python 周期任务调度工具

注意:Schedule主要作用是替代linux系统自带的Crontab命令,用于周期性的执行某个命令。 科普一下任务调度系统 任务调度系统的地位 任务调度系统在数据平台中算是非常核心的组件,相当于指挥部,指挥各个平台上各个组件的运行,并监督任务的运行情况。大数据平台中通常会有很多任务运行,有一个好的任务调度系统可以极大提高效率。 最简单的任务调度系统莫过于linux系统自带的Crontab工...

继续阅读 »

Github进行fork后如何与原仓库同步

如果你提交的 pull request 未被接受且得到回复说:“重新fork”。说明在你fork之后,源仓库又更新了。 通常的做法是,删掉自己fork的库,然后再修改。但是如果fork中有大量已修改的内容时这个方法就不行了。 操作步骤 1、执行命令 git remote -v 查看你的远程仓库的路径。 $ git remote -v origin https://github.com/e2...

继续阅读 »

编程语言中IO流的使用

什么是IO流 java的io是实现输入和输出的基础,都在java.io.*包下。 流(stream)是一种有顺序的,有起点和终点的字节集合 IO流的分类: 按照流的方向区分: 节点流,输入流(往内存中去)、输出流(内存中出来) java.io.InputStream 字节输入流 java.io.OutputStream 字节输出流 按照读取数据方式区分: 处理流,字节流、字符流 java.i...

继续阅读 »

编程语言中高级特性:集合

注意:同样以java为例说明 为什么说集合非常重要 集合可以说是学习 Java 中最重要的一块知识点了,无论做任何业务系统,集合总是最为基础的那块API。 在实际项目中,我们可以发现集合无处不在,因为凡是涉及到数据存储相关的问题都离不开集合,合理的使用集合可以极大的提高存储和检索的效率。集合也是很多数据结构的基础。 集合与集合框架 集合 集合是 Java 提供的一种存储对象的容器,同数组一样...

继续阅读 »

编程语言中高级特性:注解

注意:本文以java为例说明。 什么是注解 Java注解是JDK1.5的新特性,与注释比较类似,不同的是注释是给我们开发人员看的,注解是给代码看的,它是代码层面的解释说明,注解也被称为元数据。注解的使用也很简单,语法规则:@注解名称,比如我们常见的“@Override”。 注解本身没有任何意义,单独的注解就是一种注释,他需要结合其他如反射等技术才有意义。 Java注解它提供了一种安全的类似注...

继续阅读 »

编程语言中高级特性:反射

反射机制 这里以java反射机制加以说明,其他编程语言基本类似。 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 反射机制应用场景 通过配置信息调用类的方法 结合注解实现特殊功能 按需加载jar包或class 逆向代码 ,例如反编...

继续阅读 »