
Python
文章平均质量分 54
卡尔曼和玻尔兹曼谁曼
面朝大海,春暖花开
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
NumPy中的维度Axis
文章目录浅谈NumPy中的维度Axis二维数组的列子多维数组版权声明:本文为博主原创文章,转载请注明原文出处!写作时间:2019-04-16 14:56:53浅谈NumPy中的维度AxisNumPy中的维度是一个很重要的概念,很多函数的参数都需要给定维度Axis,如何直观的理解维度呢?我们首先以二维数组为例进行说明,然后推广到多维数组。(有人将ndim属性叫维度,将axis叫轴,我还是...原创 2019-04-17 03:38:05 · 2000 阅读 · 0 评论 -
使用Rasterio读取栅格数据
使用Rasterio读取栅格数据作者:阿振 邮箱:tanzhenyugis@163.com 博客:https://blog.youkuaiyun.com/theonegis/article/details/80089375 修改时间:2018-06-06 声明:本文为博主原创文章,转载请注明原文出处Rasterio简介有没有觉得用GDAL的Python绑定书写的代码很不Pyth...原创 2018-06-08 03:34:40 · 12765 阅读 · 2 评论 -
Fiona简介及Shapefile数据读取
Fiona简介及Shapefile数据读取作者:阿振邮箱:tanzhenyugis@163.com博客:https://blog.youkuaiyun.com/theonegis/article/details/80089375修改时间:2018-06-06声明:本文为博主原创文章,转载请注明原文出处Fiona简介用GDAL的Python绑定API书写程序有没有一种仍然在写...原创 2018-06-07 12:00:17 · 7909 阅读 · 1 评论 -
使用Rasterio做投影变换
使用Rasterio做投影变换作者:阿振邮箱:tanzhenyugis@163.com博客:https://blog.youkuaiyun.com/theonegis/article/details/80089375修改时间:2018-06-11声明:本文为博主原创文章,转载请注明原文出处思路分析在之前GDAL系列文章中的《栅格数据投影转换》提到过,做投影转换最重要的是计算...原创 2018-06-12 11:36:57 · 3446 阅读 · 1 评论 -
使用Fiona创建Shapefile矢量数据
使用Fiona创建Shapefile矢量数据作者:阿振 邮箱:tanzhenyugis@163.com博客:https://blog.youkuaiyun.com/theonegis/article/details/80089375修改时间:2018-06-10声明:本文为博主原创文章,转载请注明原文出处基本思路使用Fiona写入Shapefile数据,主要是构建一个Schem...原创 2018-06-12 10:56:31 · 2910 阅读 · 0 评论 -
矢量数据投影转换
矢量数据投影转换作者:阿振邮箱:tanzhenyugis@163.com博客:https://blog.youkuaiyun.com/theonegis/article/details/80089375修改时间:2018-06-03声明:本文为博主原创文章,转载请注明原文出处案例说明接着上一篇博文中,我们得到了WGS84坐标系下的中国省区图,而我们一般中国地图中使用的是割圆...原创 2018-06-04 06:16:55 · 7539 阅读 · 1 评论 -
Python空间数据处理实战
前言百度网盘视频:https://pan.baidu.com/s/1moFYT1lt-YazLGY9AGmm-g优酷视频集合:Python基础开发环境搭建及基本数据类型运算符及字符串序列与字典流程控制语句函数面向对象编程初识面向对象编程高级Python科学计算空间数据处理环境搭建空间数据基础空...原创 2018-04-26 09:42:48 · 16298 阅读 · 15 评论 -
创建Shapefile文件并写入数据
打开Shapefile文件的正确方式作者:阿振邮箱:tanzhenyugis@163.com博客:https://blog.youkuaiyun.com/theonegis/article/details/80089375修改时间:2018-06-02声明:本文为博主原创文章,转载请注明原文出处基本思路使用GDAL创建Shapefile数据的基本步骤如下:使用osge...原创 2018-06-03 11:02:34 · 10480 阅读 · 2 评论 -
Jupyter插件安装及其虚拟多环境创建
Jupyter及其插件安装Jupyter安装pip install jupyterJupyter使用jupyter notebookJupyter插件管理pip install jupyter_contrib_nbextensionsjupyter contrib nbextension install --userpip install jupyter...原创 2018-04-13 02:09:16 · 4941 阅读 · 0 评论 -
Python中不用循环同时遍历两个数组并进行对应元素的处理并进行删除
对于Python语言,在编写代码的时候如果不用循环尽量不用循环,语言内置的一些函数其处理效率往往更高。下面举个例子进行说明:比如我们有两个相同大小的列表(list),需要同时对两个列表的对应元素进行判断,把满足要求的删除。x, y是两个列表,上面的例子将x,y对应相等的元素进行删除操作。其中内部的zip将x,y打包,外部的zip将处理后的元素拆包。注意:外部的zip函数拆包需要对变原创 2018-01-15 05:27:53 · 11439 阅读 · 1 评论 -
K-SVD字典学习及其实现(Python)
算法思想算法求解思路为交替迭代的进行稀疏编码和字典更新两个步骤. K-SVD在构建字典步骤中,K-SVD不仅仅将原子依次更新,对于原子对应的稀疏矩阵中行向量也依次进行了修正. 不像MOP,K-SVD不需要对矩阵求逆,而是利用SVD数学分析方法得到了一个新的原子和修正的系数向量.固定系数矩阵X和字典矩阵D,字典的第kk个原子为dkd_k,同时dkd_k对应的稀疏矩阵为XX中的第kk个行向量xkTx^k原创 2017-11-06 06:14:57 · 12022 阅读 · 37 评论 -
Python函数参数传递:传值还是传引用
引子首先来看一个列子:def change(val): val.append(100) val = ['T', 'Z', 'Y']nums = [0, 1]change(nums)print(nums)猜猜结果应该是什么? 按照C++语言的思维,如果Python函数参数的传递是传值的话,结果应该是[0, 1],如果是传引用的话,结果应该是[‘T’, ‘Z’, ‘Y’]。 可原创 2016-03-30 11:46:53 · 19763 阅读 · 11 评论 -
栅格数据投影转换
栅格数据投影转换作者:阿振邮箱:tanzhenyugis@163.com博客:https://blog.youkuaiyun.com/theonegis/article/details/80089375修改时间:2018-06-01声明:本文为博主原创文章,转载请注明原文出处使用GDAL提供的命令行工具进行转换GDAL提供了gdalwarp命令可以方便地让我们进行影像拼接,...原创 2018-06-01 23:24:15 · 16048 阅读 · 5 评论 -
打开Shapefile文件的正确方式
打开Shapefile文件的正确方式作者:阿振邮箱:tanzhenyugis@163.com博客:https://blog.youkuaiyun.com/theonegis/article/details/80089375修改时间:2018-05-25声明:本文为博主原创文章,转载请注明原文出处Shapefile文件简介Shapefile文件是美国ESRI公司发布的文件格式...原创 2018-06-02 01:53:57 · 14964 阅读 · 0 评论 -
栅格数据裁剪
文章目录使用GDAL命令使用Python代码版权声明:本文为博主原创文章,转载请注明原文出处!写作时间:2019-03-22在进行遥感影像处理的时候,我们经常需要进行裁剪的工作,来看看如何使用GDAL工具进行这项操作吧!参考资料:GDAL: gdalwarpGDAL: gdal_translateGDAL/OGR Python API使用GDAL命令GDAL提供了两个命令可以...原创 2019-03-23 03:57:13 · 3903 阅读 · 0 评论 -
Python中如何优雅地使用switch语句
文章目录Python中如何优雅地使用switch语句案例一(简单情况)案例二(带条件判断)版权声明:本文为博主原创文章,转载请注明原文出处!写作时间:2019-03-07 13:49:45Python中如何优雅地使用switch语句我们知道Python中没有类似C++或者Java中的switch...case语句,我们可以使用多个if...elif...else进行模拟,但是这样的写法让代...原创 2019-03-08 03:29:06 · 34494 阅读 · 5 评论 -
Python求解正态分布置信区间
文章目录Python求解正态分布置信区间正态分布和置信区间使用SciPy求解置信区间使用Matplotlib绘制正态分布密度曲线正态分布置信区间规律Python求解正态分布置信区间正态分布和置信区间正态分布(Normal Distribution)又叫高斯分布,是一种非常重要的概率分布。其概率密度函数的数学表达如下:f(x)=12πσe−(x−μ)22σ2f(x) = \frac{1}{\...原创 2019-01-23 23:31:07 · 18199 阅读 · 4 评论 -
Python调用C++代码
Python调用C++代码今天在研究PyTorch中Tensor的一些操作的时候,发现其底层Tensor的操作都是用C++写的,并使用pybind11进行C++和Python的桥接。所以,我就想着探索一下Python中如何调用C++代码?可行方案其实,方案还是挺多的:Python内置的ctypes接口(可以将C/C++代码编译为动态库,在Python中进行调用)CFFI(提...原创 2018-09-07 06:13:23 · 8700 阅读 · 1 评论 -
使用GDAL读取Sentinel数据
使用GDAL读取Sentinel数据GDAL 2.1已经原生支持对于Sentinel数据的读取,我这里使用Sentinel-2光学卫星数据给出使用GDAL工具对其进行读取的方法。这里我们要大概知道Sentinel数据的组织。下载下来的Sentinel数据是一个ZIP压缩包,里面包含了JPEG2000格式的影像数据以及一些XML格式的元数据文件。GDAL将Sentinel数据看做一个数据...原创 2018-08-29 22:50:17 · 4306 阅读 · 15 评论 -
Matplotlib中的两种绘图API说明
Matplotlib中的两种绘图API说明在Matplotlib库中提供了两种风格的API供开发者使用:一种是Pyplot编程接口(state-based),一种是面向对象对象的编程接口(object-based)。Pyplot封装了底层的绘图函数提供了一种绘图环境,使得我们可以直接像在MATLAB那样绘制图形。当我们使用import matplotlib.pyplot as plt语句导...原创 2018-07-27 03:10:34 · 3182 阅读 · 1 评论 -
使用Rasterio创建栅格数据
使用Rasterio创建栅格数据作者:阿振 邮箱:tanzhenyugis@163.com博客:https://blog.youkuaiyun.com/theonegis/article/details/80089375修改时间:2018-06-09声明:本文为博主原创文章,转载请注明原文出处方法描述使用Rasterio创建并写入栅格数据比GDAL还简单一些,基本使用到两个函数...原创 2018-06-10 10:26:08 · 3721 阅读 · 2 评论 -
Python多进程之进程池
由于Python中线程封锁机制,导致Python中的多线程并不是正真意义上的多线程。当我们有并行处理需求的时候,可以采用多进程迂回地解决。如果要在主进程中启动大量的子进程,可以用进程池的方式批量创建子进程。 首先,创建一个进程池子,然后使用apply_async()方法将子进程加入到进程池中。import multiprocessingimport osimport timefrom dat原创 2017-04-05 11:28:16 · 6764 阅读 · 0 评论 -
Python快速入门视频
这是我第一次尝试着录制视频教程,没有多少经验。希望看到我视频的朋友,给我多提意见。本教程共有10集,每周更新一集,每集20到30分钟。 邮箱(请看到的朋友,多多提意见和建议。通过大家的反馈,我可以提供更好的视频教程给大家): tanzhenyugis@163.com zhenyutan@foxmail.com课程目录 1. Python入门—HelloWorld(开发环境搭建和基本数据类型)原创 2017-01-15 18:05:55 · 8499 阅读 · 14 评论 -
使用Python的netCDF4和matplotlib.basemap包进行气象数据的可视化
首先,安装netCDF4和Basemap,Windows下和Linux下会稍微有些不一样,请自行百度。 netCDF4:https://github.com/Unidata/netcdf4-python Basemap:http://matplotlib.org/basemap/users/installing.html下面是一个示例代码:from netCDF4 import Dataset原创 2016-03-04 20:51:34 · 31101 阅读 · 15 评论 -
Python中如何动态生成多维数组
多维数组其实就是多个一维数组的嵌套,Python中有原生的list,类似一个动态数组。 所以动态生成多维数组的思想就是在list中动态嵌套添加list。下面代码生成一个一个3×3×2的三维数组:# coding:utf-8# 使用Python3中的print函数from __future__ import print_functionarr = []# 基本思想是在list中动态添加list,每原创 2016-03-01 19:40:23 · 19617 阅读 · 0 评论 -
Python中一个for循环循环多个变量
首先,熟悉一个函数zip,如下是使用help(zip)对zip的解释。Help on built-in function zip in module __builtin__:zip(...) zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)] Return a list of tuple原创 2015-10-25 17:25:24 · 51129 阅读 · 2 评论 -
NumPy矩阵运算
8.2 矩阵(Matrix)对象Matrix类型继承于ndarray类型,因此含有ndarray的所有数据属性和方法。Matrix类型与ndarray类型有六个重要的不同点,当你当Matrix对象当arrays操作时,这些不同点会导致非预期的结果。1)Matrix对象可以使用一个Matlab风格的字符串来创建,也就是一个以空格分隔列,以分号分隔行的字符串。2)Matrix对转载 2015-08-25 15:20:46 · 2179 阅读 · 0 评论 -
Windows下Python科学计算开发环境搭建
用于科学计算Python语言真的是amazing!方法一:直接安装集成好的软件刚开始使用numpy、scipy这些模块的时候,图个方便直接使用了一个叫做Enthought的软件。Enthought是一家位于美国得克萨斯州首府奥斯汀的软件公司,主要使用Python从事科学计算工具的开发。Enthought里面包含了很多库,不需要你自己安装就可以直接使用了。 其实还又很多Python科学计算的集成软件原创 2015-05-29 10:46:50 · 2747 阅读 · 0 评论 -
在C#中调用Python方法
1. 安装IronPython到http://ironpython.codeplex.com/下载IronPython。安装下载下来的安装包(要先装VS啊)。 2. 创建项目创建一个C#的控制台应用程序。添加引用: 浏览到IronPython的安装目录中,添加对IronPython.dll,Microsoft.Scripting.dll 两个dll的转载 2015-05-30 10:21:55 · 4205 阅读 · 0 评论 -
Python模块常用的几种安装方式
一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib二、方法2: 多文件模块,带setup.py 下载模块包,进行解压,进入模块文件夹,执行: python setup.py install三、 方法3:easy_install 方式 先下载ez_setup.py,运行python ez_setup 进行easy_install工具的安装,之后就可以使用easy_in转载 2015-05-21 09:59:57 · 4300 阅读 · 0 评论 -
Python中负数的除法和取模运算(和C比较)
一、除法:除法的取整分为三类:向上取整、向下取整、向零取整。 1. 向上取整:向+∞方向取最接近精确值的整数。在这种取整方式下,5 / 3 = 2, -5 / -3 = 2, -5 / 3 =-1, 5 / -3 = -1 2. 向下取整:向-∞方向取最接近精确值的整数。在这种取整方式下,5 / 3 = 1, -5 / -3 = 1, -5 / 3 =-2, 5 / -3 = -2转载 2015-03-22 19:27:56 · 8405 阅读 · 0 评论 -
Python常用内置函数
1.常用内置函数:(不用import就可以直接使用) help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像函数一样调用 repr(obj) 得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝 eval_r(str) 表示合法的python表达式,返回这个表达式 d转载 2015-03-21 19:14:12 · 1351 阅读 · 0 评论 -
Python中的闭包问题
下面的例子摘自慕课网:闭包-慕课网闭包在函数内部定义的函数和外部定义的函数是一样的,只是他们无法被外部访问:def g(): print 'g()...'def f(): print 'f()...' return g将 g 的定义移入函数 f 内部,防止其他代码调用 g:def f(): print 'f()...' def g(): pri原创 2015-03-06 15:25:43 · 962 阅读 · 0 评论 -
Python 学习入门— 简明教程
发现写得不错的博文系列,分享给学习Python的朋友!朋友问我怎么能快速地掌握Python。 我想Python包含的内容很多,加上各种标准库,拓展库,乱花渐欲迷人眼,就想写一个快速的Python教程,一方面 保持言语的简洁,另一方面循序渐进,尽量让没有背景的读者也可以从基础开始学习。另外,我在每一篇中专注于一个小的概念,希望可以让人可以在闲暇时很快读完。 小提醒 1转载 2014-11-27 12:48:56 · 1513 阅读 · 0 评论 -
Numpy中如何给矩阵增加一行或一列
使用Python的numpy的array结构,如何给矩阵增加一行或者一列呢? 下面提供一种方法,当然numpy还提供了很多API函数可供选择。原创 2016-03-06 16:27:55 · 77117 阅读 · 0 评论 -
Numpy中找出array中最大值所对应的行和列
Python特别灵活,肯定方法不止一种,这里介绍一种我觉得比较简单的方法。 如下图,使用x == np.max(x) 获得一个掩模矩阵,然后使用where方法即可返回最大值对应的行和列。 where返回一个长度为2的元组,第一个元素保存的是行号,第二个元素保存的是列号。原创 2016-03-07 15:44:45 · 78858 阅读 · 6 评论 -
使用GDAL进行影像投影坐标、地理坐标、图上坐标的转换
我使用GDAL库写了四个函数分别进行投影坐标与地理坐标(经纬度)之间的转换,投影坐标和图上坐标(行列号)之间的转换。有需要的朋友可以参考。 直接上代码吧,因为代码很简单(Python版本)。# -*- encoding: utf-8 -*-from osgeo import gdalfrom osgeo import osrimport numpy as npdef getSRSPair(da原创 2017-01-14 17:49:14 · 29859 阅读 · 36 评论 -
GDAL获取栅格数据各个像素对应的经纬度(Python版)
这里要使用的一个比较重要的函数是GetGeoTransform函数,GDAL官网的API中对GetGeoTransform的解释如下: CPLErr GDALDataset::GetGeoTransform ( double * padfTransform ) virtual Fetch the affine transformation coefficients.Fetches原创 2016-03-04 21:11:16 · 26578 阅读 · 20 评论 -
使用Python将时间或者时间间隔转为ISO 8601格式
Python自带的datetime库提供了将datetime转为ISO 8610格式的函数,但是对于时间间隔(inteval)并没有提供转换的函数,下面我们动手写一个。 对于时间间隔,ISO 8601的表示形式如下: P表示的是时间间隔的前缀。YMDHMS分别表示年月日时分秒,W表示周。T表示后面的字符是精确到天的,也就是以小时表示开始的前缀。 英文解释如下 : [P] is used as原创 2017-01-14 10:56:33 · 13427 阅读 · 0 评论 -
矛盾方程的最小二乘解
首先看两个个结论: 结论一:方程组Ax=bAx=b的最小二乘解的通式为x=Gb+(I−GA)yx=Gb+(I-GA)y, 其中G∈A{1,3}G\in A\{1, 3\}, yy是Cn\mathbb C^n中的任意向量.结论二:只有AA是满秩时, 矛盾方程组Ax=bAx=b 的最小二乘解才是唯一的, 且为x0=(AHA)−1AHbx_0=(A^HA)^{-1}A^Hb. 否则, 便有无穷多个最小二原创 2015-11-06 21:27:32 · 13737 阅读 · 0 评论