Python学习笔记
Python学习笔记
爱吃柚子的梨
自勉联:
有志者事竟成破釜沉舟百二秦关终属楚
苦心人天不负卧薪尝胆三千越甲可吞吴
展开
-
【wxPython】创建RibbonGUI
如果想要添加一个RibbonButton,那么顺序必须为Sizer->RibbonPage->RibbonPanel->RibbonButtonBar->RibbonButton对于RibbonButton的事件绑定采用如下代码:elf.Bind(rb.EVT_RIBBONBUTTONBAR_CLICKED, self.SayHello, id=wx.ID_ANY)...原创 2021-08-19 11:17:18 · 642 阅读 · 0 评论 -
【Python 2.7】Python Exception <UnicodeEncodeError>: ‘ascii‘ codec can‘t encode characters
这是由于对ascii编码错误造成的,可以尝试:在变量后面加.encode(‘gbk’)在变量后面加.encode(‘utf-8’)注意:如果遇到中文输入变量和匹配值不匹配的情况,如x=‘你好’,但是判断x=='你好’的时候为FALSE,这可能是由于半角字符、全角字符或者空格等等原因造成的,建议直接复制或者导入匹配值列表,确保二者信息完全一致。(其实更建议用英文)...原创 2021-07-14 12:17:09 · 270 阅读 · 0 评论 -
【numpy计算欧几何距离】多点至单点的距离
方式一下面数组中,第一列是表示点的ID号,第二、三列分别表示x和y坐标。import numpy as npa = np.array([[0, 1, 2], [1, 2, 3], [2, 3, 4]])b = np.array([[1, 2, 3]])d_arr = np.sqrt(np.power(a[:, 1] - b[:, 1], 2) + np.power(a[:, 2] - b[:, 2], 2))print(d_arr)方式二numpy.linalg.norm...原创 2021-05-05 21:31:50 · 824 阅读 · 0 评论 -
【Python】ogr使用小记
图层的属性筛选 # 通过属性进行要素筛选 lyr.SetAttributeFilter(field_name + "=" + str(val)) # 还原图层值筛选前的状态 lyr.SetAttributeFilter(None)ogr中的geometry与shapely互相转换test_poly_file = r"F:\Temp\temp_gis_data\testSplittingPolygon.shp"ds = shp_driver.Open(test.原创 2021-04-21 09:54:50 · 589 阅读 · 0 评论 -
【pyinstaller】modulenotfounderror no module named ‘rasterio._shim‘、‘rasterio.control‘等
对于出现no module not found error的情况一般的解决办法就是使用hidden imports参数当前对于这种问题的解决方法就是将所有缺少的模块用hidden imports给加进去,当然手动加有些麻烦,故参考博文https://stackoverflow.com/questions/53149750/something-wrong-with-how-im-bundling-rasterio-into-an-executable给出的解决方法:# -*- mode: pyt原创 2021-04-18 22:30:29 · 2186 阅读 · 4 评论 -
conda安装rasterio失败原因分析
conda提示是使用的Python版本不对,当我从3.8改成了3.7的时候conda安装rasterio倒是成功了。原创 2021-04-18 19:34:46 · 1066 阅读 · 1 评论 -
【Python】geos_c.dll缺失解决方法
打开下面网址,或者自行百度下载geos_c.dllhttps://www.dll-files.com/download/d8b5101f07394b4562ef673869395443/geos_c.dll.html?c=eXJISm5CSFNJREh3aXN4WVllQy9ydz09放到可执行文件旁或者需要对应的目录如果你认为对你有用,或者想要与我有更多交流,可以关注我的微信公众号支持我哦!~...原创 2021-04-15 23:48:40 · 2327 阅读 · 1 评论 -
【Pyinstaller/cx_freeza已解决】oserror: could not find or load spatialindex_c-64.dll
出现这个问题的原因是geopandas引用的库rtree找不到spatialindex_c-64.dll导致的,那么解决这个问题的直接办法就是修改源代码,首先根据报错提示(cx_freeza)我找到出错的原文件路径:D:\ProgramsInD\anaxonda3\Lib\site-packages\rtree\core.py报错显示出错的行数是129行,找到该行代码:既然是找到不的原因导致的,那就给它这个文件的路径便是了,直接将源代码改为: if not rt: if o原创 2021-04-15 15:04:09 · 3096 阅读 · 6 评论 -
【Delaunay三角网】scipy.spatial.Delaunay函数解析及其与Geopandas结合绘制Delaunay三角网
常用参数解析points: 包含x,y坐标的点,用于生成Delaunay三角网。格式:[[x1, y1], [x2, y2], [x3, y3], …]incremental: 是否允许继续加点,默认False常用属性解析points:即你输入的那些点simplices:Delaunay函数生成的那些三角形,每个三角形用其三个顶点的顶点号表示,每个三角形的顶点号按照逆时针排列neighbors:每个三角形的邻居三角形,每个三角形至多三个邻居,第k个邻居在第k个顶点的对面(就是原创 2021-04-04 11:29:42 · 5057 阅读 · 1 评论 -
【Geopandas】Polygon的JSON格式分析
案例图片分析上述多边形中间有一个空洞,因此在被转为json格式后,在坐标(Coordinates)那里会分为两组坐标,如下所示:分别是外边框和内边框。如果,多边形内继续增加空洞,那么就会增加更多组的数据。如果你认为对你有用,关注我的微信公众号支持我一下吧!~...原创 2021-02-22 17:43:54 · 972 阅读 · 0 评论 -
Python中matplotlib将多个图形绘制到一张图中
代码在plot中使用同一个axfigure, ax = plt.subplots()tr.plot(ax, **t)tr.plot(ax, **polygons_tri_dict)原创 2021-02-22 17:42:40 · 7491 阅读 · 0 评论 -
NumPy array is not JSON serializable
解决办法定义如下类:class NumpyEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, np.ndarray): return obj.tolist() return json.JSONEncoder.default(self, obj)然后在保存字典的时候添加cls属性即可:with open('dict_data.json', 'w')原创 2021-02-22 14:32:22 · 324 阅读 · 1 评论 -
【Delaunay三角网】使用Python生成受约束Delaunay三角网
使用的Python库名字叫做“tri”安装:pip install triangle简介此处仅以笔记的形式记录一些概念,详细请从参考资料中跳转参考原始API资料:segment: 约束性线段,三角形必须以这些约束性线段作为边hole: 一个封闭多边形内“种子点”,从种子点出发删除封闭多边形内的三角形(碰到segment就停止删除)Planar Straight Line Graph (PSLG):包含顶点(vertices)和线段(segments)的平面图形生成受约束Delauna原创 2021-02-21 17:29:32 · 5274 阅读 · 21 评论 -
【Geopandas】提取组成Polygon对象的点的坐标
思路先将geometry转为json格式,再从json中提取各个多边形的点的坐标代码import geopandas as gsimport jsongdf = gs.read_file("F:\\Zhujie\\JY_Data\\test_blocks.shp")polygon = gdf.geometry.to_json()polygon_dict = json.loads(polygon)print(polygon_dict["features"][0]["geometry"]["c原创 2021-02-21 15:59:05 · 4282 阅读 · 0 评论 -
【ArcGIS系列】如何在PyCharm和VScode中配置Arcpy
PyCharm方式一:使用ArcGIS自带的Python首先,明确你的电脑是32位的还是64位的,此处以64位的配置为例,安装ArcGIS的时候Python默认的安装路径如下:点开第二个x64,可以看到有python.exe的可执行程序"C:\Python27\ArcGISx6410.2\python.exe"复制该路径,打开PyCharm,在已经打开的项目中选择File->Setting,找到Project的Python Interpreter选择Virtu原创 2021-01-23 20:42:45 · 3433 阅读 · 10 评论 -
【matplotlib】更改图例的位置以及基本图形元素的绘制
图例的位置更改通过plt.legend函数中提供的loc的参数修改图例的位置,loc的基本参数值如下:Location String Location Code 'best' 0 'upper right' 1 'upper left' 2 'lower left' 3 'lower right' 4 'right' 5 'center left' 6 'center right' 7 'lower cente原创 2020-12-23 15:30:43 · 1010 阅读 · 1 评论 -
解决matplotlib绘图x轴和y轴不在零点相交问题
以绘制最简单的sin x曲线为例,输入以下代码:import numpy as npimport matplotlib.pyplot as pltx = np.arange(0, 6, 0.1)y = np.sin(x)plt.plot(x, y)plt.show()得到图形:现希望x轴和y轴在零点相交,可以通过axis函数设置:import numpy as npimport matplotlib.pyplot as pltx = np.arange(0, 6, 0原创 2020-12-23 15:18:09 · 8411 阅读 · 0 评论 -
Python绘制三维图像
公式代码import numpy as npimport matplotlib.pyplot as pltfig = plt.figure()x = np.arange(0, 10, 0.1)y = np.arange(0, 10, 0.1)x, y = np.meshgrid(x, y) # 使得x,y二维化为100*100的矩阵z = np.exp(-x-y) # 从而z也二维化ax = plt.axes(projection='3d')ax.plot_surfa原创 2020-12-13 09:10:23 · 1409 阅读 · 0 评论 -
Numpy.argsort()函数使用详解(以按矩阵指定列对各行排序为例)
该方法返回的是矩阵a要素排序后的索引数据,干说无用,以二维数组为例,按照指定列,如第0列,进行排序。Python代码: 首先看代码,再逐行解释。import numpy as na = np.array([[0, 11, 12], [2, 2, 3], [7, 8, 9], [1, 2, 3]])ind = np.argsort(a, axis=0)print(a)print(ind)print(a[ind[:, 0]])# Output:# [[ 0 11 12]# [ 2原创 2020-11-04 21:05:24 · 2567 阅读 · 4 评论 -
【OOP】类中定义多个构造器(Python vs C#)
前言对于一个书籍类,有两个属性,分别是name和id。需求如下:不给构造器传任何参数直接创建类的实例,默认书籍名称是"哈利波特",id为1指定参数创建类的实例,如"杀死一只知更鸟",id为2Pythonclass Book: def __init__(self, _name="哈利波特", _id=1): self.name = _name self.id = _id def print_info(self): print(.原创 2020-09-30 16:34:06 · 306 阅读 · 0 评论