![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
Cmmm丶
分享python科研小技巧~
展开
-
不同command line interface中 python Venv虚拟环境的激活方式
不同command line interface中 python Venv虚拟环境的激活方式原创 2022-12-20 17:48:57 · 146 阅读 · 0 评论 -
Python Statistical model: 用Scipy curve_fit方法做曲线拟合
点赞发Nature关注中Science最近在学习一些计量相关的东西,我看别人一般都是 用State或者Eviews做计量分析,我试了试用python做,下面是用python做的简单的线性回归分析。from scipy.optimize import curve_fitdef cost_func(x_data, c1): return c1 * x #目标函数形式def cost_curve_fit(x_data, y_data, region): c, cov = cur原创 2020-08-28 12:27:14 · 510 阅读 · 0 评论 -
pytest测试框架使用
pytest测试框架极简教程这样,命令行可以识别指令编写测试脚本,脚本名称要符合pytest命名规则。编写的脚本要以开头或结尾。如 编写单元测试函数,如:一是要二是要有之类的判定函数原创 2022-07-05 18:24:41 · 153 阅读 · 0 评论 -
ZipFile 解压多个.zip压缩文件
用zipfile一次解压多个文件原创 2022-06-20 03:50:24 · 601 阅读 · 0 评论 -
python DEA: by-product NDDF DEA模型
by-product DEA模型取消了常用的DEA模型中的弱处置性(weak disposability),可以用来模拟副产品与主产品相关性不强的情景。原创 2022-06-18 18:39:55 · 1139 阅读 · 0 评论 -
Python生命周期分析: Brightway2 报错unlink exchange的调试方法
用brightway2和构建基于excel的生命周期数据库时,常出现一下报错link = r"path\to\database.xlsx"db = bw.ExcelImporter(link)db.apply_strategies()db.match_database( db_name="ecoinvent 3.6", fields=["name", "unit", "location", ],)db.statistics()...原创 2021-11-07 22:26:46 · 593 阅读 · 0 评论 -
能源系统建模:利用gcam_reader批量导出GCAM database数据
点赞发Nature关注中ScienceGCAM计算结果我们可以用model interface直接查看,在model interface中直接复制结果即可。但有时我们需要批量导出结果,此时,我们可以利用python的gcam_reader包。gcam_reader包并不在PyPI中,需要从JGCRI下载获取。pip install https://github.com/JGCRI/gcamreadergcam_reader将database读取为DataFrame:import gcam_re原创 2021-10-05 09:44:11 · 5369 阅读 · 5 评论 -
python绘图:截取matplotlib colormap色谱的一部分
点赞发Nature关注中Sciencematplotlib.colors中,整个色谱的频段太宽,边缘区域的颜色太深,不适合作图,我们希望截图整个色谱的一部分用于作图,以下是代码:import matplotlib.colors as colorsimport matplotlib.pyplot as pltimport numpy as npdef truncate_colormap(cmap, minval=0.0, maxval=1.0, n=100): new_cmap = co原创 2021-08-24 08:55:24 · 3447 阅读 · 3 评论 -
python DataFrame中包含数字的字符串索引排序
点赞发Nature关注中Science假设一个dataframe,他的index是如下所示df = pd.DataFrame([[1, 3, 4], [2, 3, 4], [3, 4, 5],[4,5,6],[1.,5,6],[2,4,1],[3,4,6]],index = ["optimized_b_0","optimized_b_1","optimized_b_2","optimized_b_3","optimized_b_4","optimized_b_12","optimized_原创 2021-08-10 14:49:22 · 1739 阅读 · 0 评论 -
python Nonlinear Programming: SciPy求解满足KKT条件的非线性方程
点赞发Nature关注中ScienceKKT conditions是广义Lagrange Multiplier下非线性优化的必要条件。非线性优化的基本构建如下当满足KKT条件时,SciPy.minimize方法可用以求解该非线性方程。对于Lagrange Function:g(x), f(x)是连续可微分函数(保证梯度下降求解方法)L是可全微分函数具体的KKT条件可查看:KKT条件详解以下是一个满足KKT的非线性规划问题的SciPy求解Referenceimport numpy原创 2021-07-08 14:32:29 · 946 阅读 · 1 评论 -
python线性规划:用CVXPY构建收入最大化模型Revenue Maximization
点赞发Nature关注中Science之前的一些工作都是用pulp构建的基于非径向距离NDDF的Malmquist-Luenberger 指数零和数据包络分析考虑非期望产出的非径向距离函数NDDF但是pulp库的问题是只能坐线性编程,而无法求解非线性问题。而CVXPY则可以。所以我目前在尝试从pulp转到CVXPY 以下是一个用CVXPY编写的收入最大化模型,Fare et al曾证明过成本最大化模型是产出距离函数的对偶函数。import cvxpy as cpimport numpy as原创 2021-06-15 15:53:12 · 935 阅读 · 2 评论 -
能源系统建模:python读取GCAM的xml数据文件
点赞发Nature关注中ScienceGCAM通过gcamdata由csv文件生成xml文件,在csv文件中的寿命曲线,成本曲线等会形成xml文件中的每个时间的具体数据。有时需要将这些具体的数据导出,研究stranded asset, material flow等问题。下面是一个比较普适的读取xml文件中数据的代码(以读取交通部门乘用车能源强度为例UCD_trn_COR.xml,利用的xml包):from pandas import ExcelWriterimport numpy as npi原创 2021-06-15 14:16:50 · 756 阅读 · 3 评论 -
python Dat Vis: Plotly绘制sankey diagram桑基图
点赞发Nature关注中Sciencesankey图一般用于描绘agent间的物质、能量流动,在综合评估模型IAM、投入产出模型IO相关的论文中比较常见。以下是一个使用plotly程序包绘制能量流动的代码import osimport pandas as pdimport plotly.express as pximport plotly.graph_objects as gocolor_node_prod = px.colors.sequential.YlGn # define the c原创 2021-05-24 10:38:54 · 935 阅读 · 0 评论 -
python DEA: 基于非径向距离NDDF的Malmquist-Luenberger 指数及其分解
点赞发Nature关注中ScienceMalmquist-Lenberger指数(ML指数)是距离函数与DEA计算中常用的指数,ML指数可以进一步分解为技术进步technological progress和效率改善effeciency change. 技术进步常被当做增长模型中的全要素生产率,用到许多计量经济研究中,探讨影响技术进步的环境变量。这里我分享一个考虑非期望产出下的NDDF方法计算ML指数。该ML指数为global ML(区别于sequential ML)import numpy as原创 2021-05-11 12:58:55 · 4433 阅读 · 9 评论 -
python DEA: 零和数据包络分析zero-sum gain Data envelopment analysis
点赞发Nature关注中Science强/弱处置性假设下的距离函数Matlab DEA 程序包pyDEA安装非径向距离函数考虑非期望产出的非径向距离函数在生产可能集中的资源再分配是在环境约束的生产过程中的一个新的研究课题。ZSG-DEA方法是解决资源分配问题的一个新兴方法。ZSG方法假设整个经济中的资源是固定的,因此一个单元的投入资源增加必然导致另一个单元的投入减少。在解决CO2排放权分配的问题上,很多文献就采用了ZSG-DEA方法。他们假设CO2为input,其他的GDP,人口,资本投入为原创 2020-09-17 16:55:29 · 3028 阅读 · 8 评论 -
python LCA: Brightway2 环境影响蒙特卡洛Monte Carlo分析
点赞发Nature关注中ScienceEcoinvent等生命周期数据库都会给不同的过程(process)设置一个不确定性分布,以更好地模拟真实过程中地不确定性。我们可以利用brightway2这个python包做一个不同过程地蒙特卡洛分析。下面的代码实现了对多个影响因子,如GWP (CO2 emission), PMFP (PM emission), EDP (oil equivalent consumption)的Monte Carlo不确定性分析。import brightway2 as bw原创 2021-04-26 15:07:23 · 1744 阅读 · 4 评论 -
python DEA: 非径向距离函数(non-radial directional distance function)
点赞发Nature关注中Science最近在想怎么用python实现非径向距离函数之前用了pyDEA包https://pypi.org/project/pyDEA/,那个包比较简陋,只有普通的CCR BCC模型。另一方面,MaxDEA因为是打包好的嘛,所以不够灵活。所以想自己做一个NDDF的模型出来。所以用pyDEA的初始代码进行了一些改造,直接上代码:import numpy as npimport pandas as pdimport pulpclass DEAProblem:原创 2020-07-01 09:20:00 · 5834 阅读 · 6 评论 -
RuntimeError: Cannot clone object <tensorflow.python.keras.wrappers.scikit_learn.KerasClassifier obj
点赞发Nature关注中Science用sklearn.GridSearchCV时,def create_model( i=0, # ith country neurons_First=30, # neurons in the first layer neurons_Second=30, # neurons in the second layer layer=1, # number of layers dropout_rate=0.2, # dropo原创 2021-03-15 15:11:39 · 4041 阅读 · 12 评论 -
python DEA:强/弱处置性假设下的考虑非期望产出的非径向距离函数
点赞发Nature关注中Science非径向距离函数考虑非期望产出的非径向距离函数这一版更新比较简单,增加了强处置性假设下的非径向距离函数(NDDF)计算。比较强\弱处置假设下的NDDF,可以计算相应的环境规制成本[ Technological Forecasting & Social Change 96 (2015) 62–70].import numpy as npimport osimport pandas as pdimport pickleimport pulpimpo原创 2020-07-23 09:18:03 · 2511 阅读 · 22 评论 -
python Deep learning: 用tensorflow keras快速生成时间序列数据
点赞发Nature关注中Science做时间序列预测的时候,一般需要先对数据进行时间序列处理,形成以一定数据结构之后才能输入深度学习模型进行预测。tensorflow.keras提供了十分方便的预处理包TimeseriesGenerator:from keras.preprocessing.sequence import TimeseriesGenerator# 对于任一的时间序列数据 dataframedata_processed = TimeseriesGenerator(原创 2021-03-10 18:36:11 · 396 阅读 · 0 评论 -
python Dat Vis: Matplotlib设置x/y轴数据标签字体、大小、方向
点赞发Nature关注中Scienceimport matplotlib.pyplot as plt#设置x轴plt.xticks(fontname="Calibri",fontsize=20,rotation=45)#设置y轴plt.xticks(fontname="Calibri",fontsize=20,rotation=45)'''arg 'fontname'可选项可查看以下链接http://jonathansoma.com/lede/data-studio/matplotlib原创 2021-01-11 10:15:59 · 4528 阅读 · 0 评论 -
Data Vis: pandas DataFrame用rgba值自定义颜色
点赞发Nature关注中Science作图的时候我一般喜欢用其他来源的调色板,这样的话,需要自定义colormap,matplotlib提供了很方便的自定义颜色方法,用元组数据类型表达 颜色的rgba值即可:import matplotlib.pyplot as plt#自定义白色white = (0.0,0.0,0.0)#假设用一个dataframe作图,设置线条颜色为白色df.boxplot(edgecolor=white)#想定义一系列颜色也可以colormap = ((0,0原创 2020-08-05 12:28:10 · 1113 阅读 · 0 评论 -
python LCA: Brightway2 SingleOutputEcospold2导入文件发生assertion error
70 assert os.path.exists(dirpath) 71 if os.path.isdir(dirpath): 72 filelist = [filename for filename in os.listdir(dirpath)AssertionError: 原因是导入文件地址中存在空格,os...原创 2020-01-08 15:39:42 · 339 阅读 · 0 评论 -
python DEA: 考虑非期望产出的非径向距离函数NDDF
点赞发Nature关注中Science上一版非径向距离函数在这普通非径向距离函数现在很多研究在测度效率时要考虑非期望产出,如环境技术中CO2排放,银行业中的不良贷款等,这里我写了一个考虑非期望产出的非径向距离函数class DEAProblem: def __init__(self, inputs, outputs, bad_outs, weight_vector, directional_factor=None, returns='CRS', in_we原创 2020-07-08 15:05:55 · 6562 阅读 · 22 评论 -
conda虚拟环境下ipython或jupyter notebook无法正确调用python
求点赞~用conda创建虚拟环境后,激活环境后无法用pip安装python包,输入where python发现python.exe仍是..\Anaconda\python.exe输入where pip结果则是..\Anaconda3\Scripts\pip.exe原因是还未在虚拟环境中安装ipython,这也会导致后续使用jupyter出现问题。解决方法conda install -c anaconda ipython后续如果要使用jupyter,还需要conda install -原创 2020-12-02 10:50:36 · 1223 阅读 · 0 评论 -
python LCA: Brightway2 原位置修改Exchange
在做LCA研究时,我们有时候想要修改foreground的exchanges,这样可以方便的情景分析。那么如何修改exchanges呢?对于任一activity,可以通过.new_exchange()方法增加新的exchanges其中还可进行参数,如input amount type等,与输入新的exchange一样...原创 2020-03-14 22:15:49 · 152 阅读 · 0 评论 -
python 能源系统建模:message-ix Integrated assessment model的安装
点赞发Nature关注中Sciencemessage-ix是IIASA做的全球能源系统综合评估模型的python包,19年发布,提供了很方面的python API做————————我是仁荷大学的经管博士生(我的google scholar, 我的Github),关注能源转型过程中的环境、经济问题。专注于分享利用python科研的技巧,欢迎一起交流、学习、合作。关于我的博客内容、其他相关的研究问题,有问题可以评论、私信我~...原创 2020-11-24 13:42:35 · 2264 阅读 · 8 评论 -
python LCA: Brightway2笔记
利用brightway2.ExcelImporter导入excel形式的foreground数据库时,产生了数据库导入不成功的问题,错误提示InvalidExchange增大excel文件中cutoff值后导入成功(原因不明)...原创 2020-02-04 17:07:01 · 591 阅读 · 0 评论 -
python 能源系统建模: pygcam (The Global Change Analysis Model) 的安装
前段时间试用了一下MESSAGEix,MESSAGE是IIASA开发的全球能源能源系统建模软件,IIASA提交给IPCC的SSP报告中用的便是基于MESSAGE建模的。MESSAGEix是纯python包,用起来比较简便,但是遗憾的是,MESSAGEix并不提供一个基础的模型供初学者利用。所以,近期,我便转向了GCAM,一个由University of Maryland开发的全球能源系统建模工具。这里主要介绍利用pygcam,一个以C++为内核的python 应用......原创 2020-12-01 13:27:44 · 2264 阅读 · 6 评论