python性能(3):大文件处理思路
上节初略小结一下处理大型文件的常规思路python性能(2):multiprocessing多个参数怎么用。Python借助Pandas处理表格文件很方便,但是涉及一下大的文件,比如需要处理单个70G(笔记本内存一般16G)的csv或者txt文件,显然不能够整个将其读取运存进行分析和运算,目前我的一般思路是读取时分块,运算时并行,写出时压缩。下一节:python性能(4):pandas和geopandas读写大文件加速
python性能(1):multiprocessing多进程
这个系列放涉及Python性能相关的处理,总的来说-除了优化代码逻辑和数据结构,其他的就是增加计算或存储资源、时间换空间、空间换时间。首先,较常用的,处理大量数据时通过多进程利用CPU的多核可以并行处理从而达到加速运算的目的,此处初步小结python内置模块multiprecessing的简单使用。
矢栅处理(3):Python读写GeoTIFF文件
先看一下tif文件的数值类型和压缩方式。地理栅格数据通常会以GeoTIFF(.tif; .tiff)、HDF(.h5; .hdf5)、NETCDF(.nc)等多种文件格式(后两者气象数据居多,长时间序列数据存储),但实际中空间处理、统计及可视化最常用的还是geotiff数据,因此先小结并对比一下:(1) gdal模块和rasterio两个模块读写tif的对比;(2)geotif文件的压缩格式
矢栅处理(2):GeoTIFF数值类型及压缩
Matplotlib基础(2):绘图逻辑与输出尺寸/格式
前一节小结了一下Matplotlib一张图表的组成(Elements), 也即Anatomy of a figure,包括Figure, Axes, Axis, Spines...。另外还指出了一个点-图表本质上是由以下三种要素的组合: patchs块、线和文本,且理论上上述部件(也称artist)都能够被访问和调整,即自定义。接下来要要做的即是逐步熟悉各部件的调整,在此之前先简单理一理绘图的逻辑及最基本的创建画布和图形及字体尺寸,并放了A4尺寸出图的参考代码。附录是关于文件格式的简单汇总。
Python中的时间格式(2):速查版
前面花时间整理了一下Python中时间格式的几个基础模块的用法,主要是针对时间格式的表达及转换。不过发现有些冗余不好找,因此整一个速查的版本方便自己快速复制粘贴。
Pandas(杂):表格的各种连接方式join
矢栅处理(杂):geopandas常用函数小结
DLL文件及conda模块加载失败
近期debug,同学在引入包(rasterio)的过程中频繁遇到DLL load failed while importing _version: 找不到指定的程序
的问题,大部分情况都是因为包依赖的冲突/不适配问题
时间序列(1):LOESS(STL)时间序列分解
近期处理定位请求时间序列的过程中用到了STL时间序列分解,趋势分析及变点检测方法,在Python和R中都进行了实践,小结一下参数设置和其他个人体会。内容包括:
1-时间序列建模/成分提取及异常分析思路;2-STL调参及代码(python and R);
正则表达式re模块用法
re(Regular Expression)/正则表达式是一个内置的文本处理模块,在进行数据处理(筛选、替换)以及网页数据抓取时十分常用该模块的主要功能是基于给定的表达式匹配字符串中的某些内容,本文参考官方文档,学习以下几点内容:1-正则表达式的语法;2-常用函数及参数;3-案例及常用表达式
矢栅处理(1):分区统计sjoin|zonal
按照多边形(如格网/行政区划)边界汇总统计其内的点/栅格是空间分析中的常用操作(栅格实际上可以看做点数据)。
对于软件,如果点是矢量,则可以直接通过ArcMap/QGIS的spatial join计算,点为栅格,则称zonal statistic……实际中数据多即需要批处理,可以采用QGIS、ArcPy或者基于Python(如geopandas rasterstats等模块)……
在读书籍:《流畅的Python》
持续阅读并更新
本书对Python的数据模型/类型和一些基础有一些深入的讲解。翻译自国外的书籍《Fluent Python》,最早2017年出版,我大概是18年买的,那阵子Python刚开始火,不过买了发现过了好几年都看不懂,现在勉强能抽空看看hh...
【GIS基础及时空数据处理分析汇总】
Pandas(1):数据选取/条件筛选小结
小结一下Pandas 筛选表格数据子集的方法作为速查手册……实际中数据处理分析及可视化往往只是数据表的一部分,因此经常需要进行:选取特定位置、特定日期、特定数值(如文本、空值)、或者满足若干组合条件的行、列等处理,这里简单汇总一下主要有以下几类,理论上基于代码我们可以实现任何想得到的处理:
- 位置筛选(与表中数值无关,仅取决于行列号或行列名),最常用df.iloc[ , ]
- 条件筛选df.loc[条件](与数值相关,根据若干符合条件(特定值或范围)选取数据子集)
- 复杂条件筛选(自定义函数df.apply的运用)
日常篇(1):数据处理习惯及VSCode使用简介
介绍一下Vscode Python环境配置,并小结一下自己目前基于Python的数据分析工作习惯。
之前的模式是基于Anaconda环境,使用Jupyter Notebook/Lab和pycharm,现在是基于Miniconda,用VSCode为主;至于涉及空间的处理,则主要是基于Python库(Gdal; geopandas...)、ArcPy以及QGIS、ArcMap等软件。
Python处理Json文件
本文小结JSON相关的一些知识点和读写方式,涉及内容
①. 序列化与反序列化; ②.Json数据格式转换及其读写; ③. 出错案例/非标准JSON文件处理
首先:import json
【研究生新手笔记汇总】
Pandas(杂):List/pandas文本包含筛选
处理文本或字符串数据常需要对内容进行关键词筛选,如选出表格df中包含某几个关键词的行,选出某个列表texts中所有包含某些关键词的句子keywords,或选择属于某个list的行……