大一经济学基础笔记里COLAs是什么

关于鲍威尔国会听证会,这四个数字很重要;
关于鲍威尔国会听证会,这四个数字很重要;①&2.61%:这是截至7月17日收盘,2年期国债的收益率。这一数字是近10年最高位,但目前重要的是,它是2018年的最高位;②&56.8%:这是根据美国联邦基金利率,在2018年再加息两次的概率,这一概率在过去一个月逐渐攀升,一个月前该数据仅为51.3%;③&3.9%:这是经济学家和亚特兰大联储GDPNow模型预测的今年二季度增速;一致观点认为,这将是今年的上限;④&26个基点:这是美国2年期和10年期国债收益率之间的息差,一旦两者之差突破零,将其视为一站式的经济衰退风险指标;⑤&Nick&Colas认为,鲍威尔希望将联邦基金利率期货显示的美联储今年再加息两次的概率上调至70%,这符合美联储的“点阵图”,也与鲍威尔对美国经济的总体乐观看法一致
下一篇:通胀意外大降英银8月加息悬?英镑暴跌逼近1.30关口
| &网络社会征信网 |
| &网络文化经营许可证
沪网文(9号& | &广播电视节目制作经营许可证 (沪)字第1805号 增值电信业务经营许可证 编号:B2-
Copyright:
Torch Corporation, All Rights Reserved . 版权所有&&客服热线:021-您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
lecture05 Deriving Demand Curves 平狄克微观经济学英文课件.PPT 103页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
你可能关注的文档:
··········
··········
Key issues 1. deriving demand curves 2. income effect 3. effects of a price change 4. CPI bias 5. labor supply curve Deriving an Individual’s Demand Curve
Price-consumption curve
shows how the optimal pairs of beer and wine vary as the relative price varies How income changes shift demand curves hold prices fixed and vary income increase in income causes shift of the demand curve movement along income-consumption curve movement along the Engel curve Effect of a Budget
Increase on an Individual’s
Demand Curve
Income elasticities income elasticity:
normal good: EI > 0 inferior good:
EI ? 0 Mimi's income elasticities beer: Eb
both are normal goods Are children inferior? mother with relative little education:
EI = -0.18 mother relatively well educated:
EI = 0.044 Income-consumption curves and income elasticities
shape of income-consumption curve for 2 goods tells us sign of income elasticities
some goods must be normal: not all goods can be inferior
Income-Consumption Curves and Income Elasticities Income elasticities may vary with income
Gail may view hamburger as
a normal good at a low income an inferior good at a high income A Good That Is Both
Inferior and Normal
Quality and income elasticities when their incomes rise, some people buy higher quality goods rather than more of what they’re currently buying examples: fancier cars fancier foods designer clothing Effects of a price change
as price of one good goes up (all else the same), there are two effects: a substitution effect an income effect Substitution effect consumers substitute other, now relatively cheaper, goods for the one whose price rose
direction of the effect is unambiguous Income effect
price increase ? consumers' buying power falls, reducing “income” (opportunity set) so consumer buys less of at least some goods direction of income effect depends on income elasticity of each good Income and substitution effects
Substitution and Income Effects
正在加载中,请稍后...【图文】微观经济学 平狄克 英文ppt chapter_12 Monopolistic Competition and Oligopoly_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&100W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
微观经济学 平狄克 英文ppt chapter_12 Monopolistic Competition and Oligopoly
&&微观经济学 平狄克 英文ppt
阅读已结束,下载本文到电脑
定制HR最喜欢的简历
你可能喜欢&figure&&img src=&https://pic2.zhimg.com/v2-37cbbedf82_b.jpg& data-rawwidth=&534& data-rawheight=&300& class=&origin_image zh-lightbox-thumb& width=&534& data-original=&https://pic2.zhimg.com/v2-37cbbedf82_r.jpg&&&/figure&&p&
编者按:经济学的量化趋势使得数据在日常经济学研究中的地位愈加重要,经济学者们也越来越依靠数据库尤其是微观数据库进行学术研究。笔者参考了国内很多关于数据库知识的整理,发现很多关于数据库的简介过于粗略或者不够全面,遗漏了很多重要的数据库。现将国内常用的微观数据库的主要信息进行重新整理汇总,方便大家查询与应用。&/p&&p&1&/p&&p&&b&中国工业企业数据库&/b&&/p&&p&数据名称:中国工业企业数据库(China Industry Business Performance Data) &/p&&p&执行机构:国家统计局&/p&&p&开放数据年份:&/p&&p&调查方式:下级企业单位按时报送&/p&&p&采用计算机辅助调查:是&/p&&p&数据类型:面板数据&/p&&p&抽样方式:根据国家统计局拟订的工业企业报表制度抽样&/p&&p&覆盖省份:中国大陆地区销售额500万元/RMB以上的大中型制造企业&/p&&p&分析单位:企业&/p&&p&核心问题:全国最为详细、所用最为广泛的微观数据库,主要研究工业企业的相关问题。&/p&&p&具体内容:数据内容中的工业统计指标包括工业增加值、工业总产值、工业销售产值等主要技术经济指标以及主要财务成本指标和从业人员、工资总额等。&/p&&p&代表文章:杨汝岱. 中国制造业企业全要素生产率研究[J]. 经济研究, 2015年02期.&/p&&p&网站链接:&/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//www.allmyinfo.com/data/zggyqysjk.asp& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&allmyinfo.com/data/zggy&/span&&span class=&invisible&&qysjk.asp&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&2&/p&&p&&b&海关数据库&/b&&/p&&p&数据名称:海关数据 &/p&&p&执行机构:中国海关&/p&&p&开放数据年份:年&/p&&p&调查方式:企业申报&/p&&p&采用计算机辅助调查:是&/p&&p&数据类型:面板数据&/p&&p&抽样方式:企业主动上报汇总&/p&&p&覆盖省份:全国各种类型进出口企业汇报&/p&&p&分析单位:企业&/p&&p&核心问题:主要是海关履行进出口贸易统计职能中产生的各项进出口统计数据,专注企业进出口情况。&/p&&p&具体内容:数据具体到各企业、各海关口岸的商品具体进出口情况。&/p&&p&网站链接:&a href=&http://link.zhihu.com/?target=http%3A//new.ccerdata.cn/Home/Special& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&new.ccerdata.cn/Home/Sp&/span&&span class=&invisible&&ecial&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&3&/p&&p&&b&CPES&/b&&/p&&p&数据名称:中国私营企业调查 (Chinese Private Enterprise Survey)&br&&/p&&p&执行机构:中国社会科学院私营企业主群体研究中心&/p&&p&开放数据年份:、、、、、2014&/p&&p&调查方式:抽样调查&/p&&p&采用计算机辅助调查:否&/p&&p&数据类型:截面数据&/p&&p&抽样方式:在全国范围内按一定比例(0.05%左右,每次的比例略有差别)进行多阶段抽样。&/p&&p&覆盖省份:针对中国大陆31个省、自治区、直辖市203万户私营企业和企业主&/p&&p&分析单位:私营企业和企业主&/p&&p&核心问题:针对私营企业和私营企业主的综合状况进行调查,内容详细,关注和研究我国私营企业发展。&/p&&p&具体内容:本调查是目前国内关于私营企业的全国性调查中对于私营企业主个人特征,尤其是社会和政治特征的调查最为集中的一项,且运用全面、系统、翔实的调查数据,对私营经济与私营企业主阶层的成长过程做了记录。&/p&&p&代表文章:政治资本、人力资本与行政垄断行业进入——基于中国私营企业调查的实证研究[J].中国工业经济,2012年09期&/p&&p&网站链接:&a href=&http://link.zhihu.com/?target=http%3A//finance.sina.com.cn/nz/pr/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&finance.sina.com.cn/nz/&/span&&span class=&invisible&&pr/&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&4&/p&&p&&b&世界银行中国企业调查数据&/b&&/p&&p&数据名称:企业调查数据(Enterprise Surveys Data)&br&&/p&&p&执行机构:世界银行&/p&&p&开放数据年份:、&/p&&p&调查方式:抽样调查、面对面调查&/p&&p&采用计算机辅助调查:否&/p&&p&数据类型:截面数据&/p&&p&抽样方式:主要针对一些国家的非农企业进行抽样调查,调査样本根据企业注册域名采用分层随机抽样的方法获取。&/p&&p&覆盖范围:中国大陆&/p&&p&分析单位:企业&/p&&p&核心问题:主要关注一个国家的商业环境变化以及公司效率和性能特征&/p&&p&具体内容:以2012年的数据为例,调査涉及企业位于大连、北京、石家庄、郑州、深圳、成都等25个城市,涵盖中国东、中、西三大区域; 调查对象为企业总经理、人力资源经理、会计师或者其他职员。调查涉及食品制造业、纺织业、服装业、基本金属制造业、电子工业、交通设备制造业等2 0 多个行业;调查内容包括企业基本信息、城市基础设施和公共服务、销售和供货、市场竞争程度、用地和行政许可、创新和技术、融资、政商关系、用工、商业环境及企业绩效等多个方面。&/p&&p&代表文章:吕铁,王海成,劳动力市场管制对企业技术创新的影响——基于世界银行中国企业调查数据的分析[J].中国人口科学,2015年04期&/p&&p&网站链接:&/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//www.enterprisesurveys.org/data& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&enterprisesurveys.org/d&/span&&span class=&invisible&&ata&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&5&/p&&p&&b&中国专利数据库&/b&&/p&&p&数据名称:中国专利数据库&br&&/p&&p&执行机构:国家知识产权局和中国专利信息中心&/p&&p&开放数据年份:年&/p&&p&调查方式:企业申报&/p&&p&采用计算机辅助调查:是&/p&&p&数据类型:面板数据&/p&&p&抽样方式:企业主动上报汇总&/p&&p&覆盖省份:全国各种类型企业专利申请&/p&&p&分析单位:企业&/p&&p&核心问题:准确地反映中国最新的专利发明&/p&&p&具体内容:该系统收录了中国自1985年实施专利制度以来的全部中国专利数据,具有较高的权威性,网上数据每周更新一次,是国内最好的专利数据库检索系统之一。&/p&&p&代表文章:庄涛,吴洪,基于专利数据的我国官产学研三螺旋测度研究——兼论政府在产学研合作中的作用[J].管理世界,2013年08期&/p&&p&网站链接:&/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//new.ccerdata.cn/Home/Special%23h3& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&new.ccerdata.cn/Home/Sp&/span&&span class=&invisible&&ecial#h3&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//202.107.204.54%3A8080/cnipr/main.do%3Fmethod%3DgotoMain& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&202.107.204.54:8080/cni&/span&&span class=&invisible&&pr/main.do?method=gotoMain&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&6&/p&&p&&b&农村经济研究中心农村固定观察点&/b&&/p&&p&数据名称:农村经济研究中心农村固定观察点数据&br&&/p&&p&执行机构:农业部农村经济研究中心&/p&&p&开放数据年份:不开放,需申请&/p&&p&调查方式:固定点观察&/p&&p&采用计算机辅助调查:否&/p&&p&数据类型:追踪调查&/p&&p&抽样方式:内部统计制度,1990年由国家统计局正式批准。&/p&&p&覆盖省份:目前有调查农户23000户,调查村360个行政村,样本分布在全国除港澳台外的31个省(区、市)。&/p&&p&分析单位:农户&/p&&p&核心问题:通过观察点对农村社会经济进行长期的连续调查,掌握生产力、生产关系和上层建筑领域的变化,了解不同村庄和农户的动态、要求,从而取得系统周密的资料。&/p&&p&具体内容:其主要工作是:一是常规调查:每年底按统一口径全面收集所有样本村、户数据;二是专题调查:根据上级领导的指示及有关部门的安排,针对农村发展、农业生产和农户生产生活中的焦点、重点问题,每年开展多项专题调查;三是动态反映:省、县两级调查机构及时反映当地农村中出现的新情况和新问题。&/p&&p&代表文章:林本喜,邓衡山,农业劳动力老龄化对土地利用效率影响的实证分析——基于浙江省农村固定观察点数据[J].中国农村经济,2012年04期.&/p&&p&网站链接:&/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//www.moa.gov.cn/sydw/ncjjzx/gcdgzdt/gzdtg/5848.htm& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&moa.gov.cn/sydw/ncjjzx/&/span&&span class=&invisible&&gcdgzdt/gzdtg/5848.htm&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&7&/p&&p&&b&CFPS&/b&&/p&&p&数据名称:中国家庭追踪调查(China Family Panel Studies) &/p&&p&执行机构:北京大学中国社会科学调查中心&/p&&p&开放数据年份:(测试调查)、12/2014(全国调查)&/p&&p&调查方式:面访、电访&/p&&p&采用计算机辅助调查:是&/p&&p&数据类型:追踪调查&/p&&p&抽样方式:多阶段、内隐分层和与人口规模成比例抽样&/p&&p&覆盖省份:25个省&/p&&p&受访者:家庭户中的所有成人及少儿成员。基因成员为长期追踪对象。&/p&&p&分析单位:个人、家庭、社区&/p&&p&核心问题:中国家庭及个人的各种经济性与社会性的福利及其变迁。&/p&&p&具体内容:村/居概况、家庭结构及关系、家庭经济、个人的工作、迁移、教育、婚姻、健康、态度观念、认知能力和社会交往等。&/p&&p&代表文章:胡枫,陈玉宇. 社会网络与农户借贷行为——来自中国家庭动态跟踪调查(CFPS)的证据[J]. 金融研究,-192.&/p&&p&网站链接:&a href=&http://link.zhihu.com/?target=http%3A//www.isss.edu.cn/cfps/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&isss.edu.cn/cfps/&/span&&span class=&invisible&&&/span&&/a&&/p&&p&8&/p&&p&&b&CHARLS&/b&&/p&&p&数据名称:中国健康与养老追踪调查( China Health and Retirement Longitudinal Study)&br&&/p&&p&执行机构:北京大学国家发展研究院&/p&&p&开放数据年份:(两省)、、2014(全国)&/p&&p&调查方式:面访&/p&&p&采用计算机辅助调查:是&/p&&p&数据类型:追踪调查&/p&&p&抽样方式:多阶段抽样,县/区和村居抽样阶段均采取PPS抽样方法&/p&&p&覆盖省份:甘肃、浙江();28个省()&/p&&p&受访者:适龄家户至少一名年满45岁的中老年人及其配偶(动态增加样本)&/p&&p&分析单位:个人/家庭&/p&&p&核心问题:养老与健康&/p&&p&具体内容:个人基本信息,家庭结构和经济支持,健康状况,体格测量,医疗服务利用和医疗保险,工作、退休和养老金、收入、消费、资产,以及社区基本情况等。&/p&&p&代表文章:姚瑶,刘斌,刘国恩,臧文斌. 医疗保险、户籍制度与医疗服务利用——基于CHARLS数据的实证分析[J]. 保险研究,-116.&/p&&p&网站链接:&a href=&http://link.zhihu.com/?target=http%3A//charls.ccer.edu.cn& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&charls.ccer.edu.cn&/span&&span class=&invisible&&&/span&&/a&&/p&&p&9&/p&&p&&b&中国家庭金融调查(CHFS)&/b&&/p&&p&数据名称:中国家庭金融调查( China Household Finance Survey) &/p&&p&执行机构:西南财经大学中国家庭金融调查与研究中心&/p&&p&开放数据年份:&/p&&p&调查方式:面访&/p&&p&采用计算机辅助调查:是&/p&&p&数据类型:追踪调查&/p&&p&抽样方式:多阶段抽样,县/区和村居抽样阶段均采取PPS抽样方法&/p&&p&覆盖省份:25个省(2011)、29个省(2013)&/p&&p&受访者:家庭中选取一名18岁以上且了解家庭财务状况的成人&/p&&p&分析单位:个人/家庭&/p&&p&核心问题:家庭经济与金融&/p&&p&具体内容:住房资产和金融财富;负债和信贷约束;收入;消费;社会保障和保险;代际的转移支付;人口特征和就业情况;支付习惯等&/p&&p&代表文章:尹志超,宋全云,吴雨. 金融知识、投资经验与家庭资产选择[J]. 经济研究,-75.&/p&&p&网站链接:&a href=&http://link.zhihu.com/?target=http%3A//chfs.swufe.edu.cn/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&chfs.swufe.edu.cn/&/span&&span class=&invisible&&&/span&&/a&&/p&&p&10&/p&&p&&b&CHIPS&/b&&/p&&p&数据名称:中国家庭收入调查(China Household Income Projects) &br&&/p&&p&执行机构:北京师范大学&/p&&p&开放数据年份:、&/p&&p&调查方式:面访&/p&&p&采用计算机辅助调查:否&/p&&p&数据类型:截面数据&/p&&p&抽样方式:国家统计局城乡居民收入调查的样本&/p&&p&覆盖省份:19个省(1995);22个省(2002)&/p&&p&受访者:抽中家庭户中全部18岁以上人员&/p&&p&分析单位:个人/家庭&/p&&p&核心问题:收入水平&/p&&p&具体内容:收入、消费、就业、生产等方面&/p&&p&代表文章:赵西亮,梁文泉,李实. 房价上涨能够解释中国城镇居民高储蓄率吗?——基于CHIP微观数据的实证分析[J]. 经济学(季刊),-102.&/p&&p&网站链接:&a href=&http://link.zhihu.com/?target=http%3A//www.ciidbnu.org/chip& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&ciidbnu.org/chip&/span&&span class=&invisible&&&/span&&/a&&/p&&p&11&/p&&p&&b&CHNS&/b&&/p&&p&数据名称:中国健康与营养调查( China Health and Nutrition Survey) &/p&&p&执行机构:北卡罗来纳大学人口研究中心、美国国家营养与食物安全研究所和中国疾病与预防控制中心&/p&&p&开放数据年份:、、、2006&/p&&p&调查方式:面访&/p&&p&采用计算机辅助调查:否&/p&&p&数据类型:追踪调查&/p&&p&抽样方式:多阶段整群抽样&/p&&p&覆盖省份:辽宁、黑龙江、江苏、山东、河南、湖北、湖南、广西和贵州9个省(不同调查年份不同)&/p&&p&受访者:家庭户成员&/p&&p&分析单位:个人、家庭、社区&/p&&p&核心问题:人口健康和营养状况&/p&&p&具体内容:住户、营养、健康、成人、儿童、社区等&/p&&p&代表文章:尹志超,甘犁. 香烟、美酒和收入[J]. 经济研究,-100+160.&/p&&p&网站链接:&/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//www.phsciencedata.cn/Share/ky_sjml.jsp%3Fid%3D5-408e-b4c9-ff& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&phsciencedata.cn/Share/&/span&&span class=&invisible&&ky_sjml.jsp?id=5-408e-b4c9-ff&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&12&/p&&p&&b&CGSS&/b&&/p&&p&数据名称:中国综合社会调查( Chinese General Social Survey)&/p&&p&执行机构:中国人民大学社会学系&/p&&p&开放数据年份:、、、&/p&&p&调查方式:面访&/p&&p&采用计算机辅助调查:否&/p&&p&数据类型:截面数据&/p&&p&抽样方式:多阶段分层PPS随机抽样&/p&&p&覆盖省份:28省&/p&&p&受访者:在选取的家庭中随机抽取1名18岁以上的成人&/p&&p&分析单位:个人/家庭&/p&&p&核心问题:社会变迁&/p&&p&具体内容:价值观、健康、家庭、教育、劳动力、职业、心理、个性等&/p&&p&代表文章:刘军强,熊谋林,苏阳. 经济增长时期的国民幸福感——基于CGSS数据的追踪研究[J]. 中国社会科学,-102+207-208.&/p&&p&网站链接:&a href=&http://link.zhihu.com/?target=http%3A//www.chinagss.org/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&chinagss.org/&/span&&span class=&invisible&&&/span&&/a&&/p&&p&13&/p&&p&&b&RUMIC&/b&&/p&&p&数据名称:中国城乡流动数据库(Rural-Urban Migration in China)
&/p&&p&执行机构:澳大利亚国立大学、北京师范大学&/p&&p&开放数据年份: &/p&&p&调查方式:面访&/p&&p&采用计算机辅助调查:是&/p&&p&数据类型:追踪数据&/p&&p&覆盖省份:本项目主要在人口流出或流入的大省进行调查。其中,农村住户调查是在以下9个省(直辖市)进行:安徽,重庆,广东,河北,河南,湖北,江苏,四川,浙江;城市流动人口调查是在以下15个城市进行:蚌埠,成都,重庆,东莞,广州,合肥,杭州,洛阳,南京,宁波,上海,深圳,武汉,无锡,郑州。城镇住户调查是在19个城市进行,包括城市流动人口调查以外的四个城市:安阳市,建德市,乐山,绵阳。&/p&&p&分析单位:个人/家庭&/p&&p&核心问题:人口流动的福利问题&/p&&p&具体内容:调查问卷涉及个人和家庭层面的信息如家庭构成、成人教育、成人就业、家庭资产等。&/p&&p&代表文章:温兴祥. 城镇化进程中外来居民和本地居民的收入差距问题[J]. 人口研究,-70.&/p&&p&网站链接:&/p&&p&&a href=&http://link.zhihu.com/?target=https%3A//www.iza.org/organization/idsc%3Fpage%3D27%26id%3D58& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&iza.org/organization/id&/span&&span class=&invisible&&sc?page=27&id=58&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&14&/p&&p&&b&UHS&/b&&/p&&p&数据名称:中国城镇住户调查数据(Urban Household Survey)&br&&/p&&p&执行机构:国家统计局&/p&&p&开放数据年份:不开放&/p&&p&调查方式:面访&/p&&p&采用计算机辅助调查:否&/p&&p&数据类型:追踪数据&/p&&p&覆盖省份:现在大家使用的是六个省份的数据(北京、广东、浙江、辽宁、陕西、四川)。每年大约有户的数据。&/p&&p&分析单位:个人/家庭&/p&&p&核心问题:这是现有的最全的全国范围的微观变量数据,主要研究教育回报率、收入不平等、家庭消费、家庭金融等问题。&/p&&p&具体内容:调查主要包含个人和家庭层次的变量。如与户主关系,性别、年龄、家庭总收入、家庭消费等。&/p&&p&代表文章:谢洁玉,吴斌珍,李宏彬,郑思齐. 中国城市房价与居民消费[J]. 金融研究,-27.&/p&&p&网站链接:无&/p&&p&15&/p&&p&&b&CLHLS&/b&&/p&&p&数据名称:中国老年健康影响因素跟踪调查(Chinese Longitudinal Healthy Longevity Survey)&br&&/p&&p&执行机构:北京大学&/p&&p&开放数据年份:&/p&&p&调查方式:面访&/p&&p&采用计算机辅助调查:否&/p&&p&数据类型:追踪数据&/p&&p&覆盖省份:CLHLS基线调查和跟踪调查涵盖了中国31个省中的23个。涵盖区域总人口在1998年基线调查时9.85亿,在2010年总人口为11.56亿,大约占全国总人数的85%。我们在22个调研省份(不包括海南省)中随机选择大约一半的市/县作为调研点进行调查。&/p&&p&分析单位:个人&/p&&p&核心问题:本项目的研究目标旨在更好地理解影响人类健康长寿的社会、行为、环境与生物学因素,为科学研究、 老龄工作与卫生健康政策信息依据填补空白。&/p&&p&具体内容:主要搜集老人死亡年月、死因、死前健康与生活自理能力等信息。在2008年调查中,我们还从大约14,000位年龄在40-110岁的自愿受访者中收集了唾液DNA样本,在2009年和2012年的8个健康长寿典型调研地区的调研中,我们采集了约4800位被访者的血液和尿样样本。另外,在1998年的基线调查中,我们搜集了4,116名80+岁高龄老人的指尖血样样本。&/p&&p&代表文章:顾和军,刘云平. 教育和培训对中国城镇劳动力就业的影响——基于CLHLS数据的经验研究[J]. 人口与经济, 2013年01期.&/p&&p&网站链接:&/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//web5.pku.edu.cn/ageing/html/datadownload.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&web5.pku.edu.cn/ageing/&/span&&span class=&invisible&&html/datadownload.html&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&p&长按识别二维码关注我们&/p&&p&如有任何问题请联系我们&/p&&p&您可以发送邮件至&/p&&p&&/p&&p&或关注微博/知乎/微信后台留言&/p&&p&我们期待您的提问!&/p&&p&微博:数据智农&/p&&p&微信:数据智农&/p&&p&邮箱:&/p&&p&制作|刘国辉&/p&&p&&/p&
编者按:经济学的量化趋势使得数据在日常经济学研究中的地位愈加重要,经济学者们也越来越依靠数据库尤其是微观数据库进行学术研究。笔者参考了国内很多关于数据库知识的整理,发现很多关于数据库的简介过于粗略或者不够全面,遗漏了很多重要的数据库。现将…
&p&作为一个在对冲基金搬砖的分析师来讲,Python 简直太好用了。正好可以用我写的博客来回答这个问题。&/p&&p&&br&可以用来测试Bloomberg 发布的新工具:&br&&a href=&//link.zhihu.com/?target=https%3A//smarterbeta.wordpress.com//bloomberg_bquant/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Bquant 0 – Introductory exploration of Bloomberg’s Bquant&/a& &/p&&p&&br&可以用来分析市场风险程度:&br&&a href=&//link.zhihu.com/?target=https%3A//smarterbeta.wordpress.com//bquant-1-explore-altmans-z-score-with-bquant/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Bquant 1: Explore Altman’s Z score with Bquant&/a&&/p&&p&&br&&/p&&p&可以搭建人工神经网络并实现 back propagation 算法:&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//smarterbeta.wordpress.com//back-propagation-for-artificial-neural-network-part-one/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Back Propagation for Artificial Neural Network: Part One&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//smarterbeta.wordpress.com//back-propagation-for-artificial-neural-network-part-two/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Back Propagation for Artificial Neural Network: Part Two&/a&&/p&&p&&br&&/p&&p&还可以确定股票量化策略的股票池&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//smarterbeta.wordpress.com//profile-of-asia-pacific-stocks-market-part-one/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Profile of Asia Pacific Stocks Market: Part One&/a&&/p&&p&&a href=&//link.zhihu.com/?target=https%3A//smarterbeta.wordpress.com//profile-of-asia-pacific-stocks-market-part-two/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Profile of Asia Pacific Stocks Market: Part Two&/a&&/p&
作为一个在对冲基金搬砖的分析师来讲,Python 简直太好用了。正好可以用我写的博客来回答这个问题。 可以用来测试Bloomberg 发布的新工具:
可以用来分析市场风险程度:
好问题。这里我给大家整理一个完整的脉络吧,方便大家理解。&br&&br&现有答案好像都是从“资源配置的效率”这个角度回答的,那我也先从这里说起。&br&&br&说起价格是不是最好的分配机制,实际上是一个市场分配机制与非市场分配机制之间的关系的问题。在我看来,经济学三百年的发展史,最核心的就是这个问题。而在时下的中国,处理好这个问题是最当务之急的事情没有之一。 &br&&br&关于市场与资源配置的效率之间的关系,远有斯密的“看不见的手”,近有上世纪阿罗和德布鲁的“福利经济学第一基本定理”:任何竞争均衡,只要偏好满足局部非餍足性,就是帕累托最优的。这应该算是迄今为止对市场经济引致效率的最主流的辩护。也就是说,一个价格决定的市场分配不能在不伤害他人的前提下让一个人的福利改善。&br&&br&这也就实现了亚当斯密所说的“被一只看不见的手引导着,去促进一个并非出自参与人本意的目的”。&br&&br&这个结论无疑是具有里程碑意义的,但不是完美的,里面存在很多问题。这篇答案依次提出五个问题,并且探讨之:&br&&br&&b&第一,满足帕累托效率的分配机制是否就是好的?&/b&&br&&br&显然不是,前几天有人批判我某个涉及马克思的答案,透露出的意思是:市场经济的特征是冷血、不公平。诚然,如果一个残疾人找不到工作要饿死了,但没有人愿意把钱给他买个面包,那么,他被饿死就是帕累托最优的。中国这两年说“改革”,总理也常说“壮士断腕”,“断腕”一词显然说明改革本身也不满足帕累托改进。事实上,据我观察,世界各国政府采取的全部经济政策,无一例外不是帕累托改进,反腐了贪官不高兴,拆迁了钉子户不高兴,对外开放了东三省的大国企不满意,闭关锁国了长三角的小作坊不满意。&br&&br&所以我们甚至可以粗略地认定,只要人数足够多,利益足够多元化,。所以,不能说,市场均衡引致的帕累托效率就是好的。&br&&br&对此,阿罗和德布鲁又证明了福利经济学第二基本定理,以补救这个缺憾:在一个凸经济中,任意给定一个帕累托有效的分配,就存在一个再分配机制,使得基于新分配的竞争均衡能够达到那个给定的帕累托效率。也就是说,如果一个“社会计划者”,想要让市场达到某个帕累托效率,他只需要在所有人之间做一个财富转移,然后放人们自己去交易,那么大家就可以达到社会计划者想要的那个效率水平。&br&&br&阿玛蒂亚·森认为,这活脱脱就是一本“革命者的手册”。&br&&br&现在,我们已经走到一个关键问题:因为第二定理里的财富转移本身不是一个帕累托改进,它相当于一个劫富济贫打土豪分田地的过程。那么,谁决定“打谁”和“分啥”就是一个涉及到正义性的东西。是否能够找到一个规则,既有效率,又“正义”(当然,在西方人看来正义等于民主),于是就有了所谓福利经济学第三基本定理,即阿罗不可能性定理:满足基本理性要求的社会选择函数必然是独裁的。&br&&br&在这个问题下面,有很多近现代的讨论,比如森强调选民间的沟通、道德和交流,再比如布坎南强调政党之间的交易等等。这里就不细说了。&br&&br&粗略总结:市场分配满足帕累托效率,帕累托效率未必好,好的帕累托效率可以实现,但是必须接受独裁。&br&&br&&b&第二,如果帕累托效率和“好的分配”没有直接关系,那么是否存在一个更弱的效率概念可以与好的分配挂上钩呢?&/b&&br&&br&在这方面最出名的莫过于“卡尔多-希克斯”效率:如果赢家之赢大于输家之输,难么政府可以将赢家之赢拿走一部分补偿输家,那么就是一个帕累托改进。可以非常清楚地看出卡尔多希克斯效率与帕累托效率的关系,帕累托效率不允许出现输家,但卡尔多希克斯效率非常接近我家老爹常说的“打一巴掌给仨枣吃”的逻辑。&br&&br&在中国,大多数经济政策都是基于这个逻辑的,比如征地补偿、拆迁:把你家农地强行征走盖一座高尔夫球场,挣来的巨大利润补偿给你,让你去城乡结合部买一套房子。这样做看起来是很有效率的,毕竟,发展经济学告诉我们,一国经济的发展离不开大量的政府主导的基础设施建设,而这些建设离不开一部分人利益的损失,但随着经济因此而繁荣,损失方享受到的物质财富的激增和繁荣变得更好。但在帕累托效率的基础上,你不能征人家的地。&br&&br&这个看起来很美的效率概念,其实有天大的漏洞。鉴于知乎上少用数学公式的潜规则,简单把这个漏洞概括成“卡尔多希克斯效率不稳定”。帕累托效率,by definition,就是不存在任何帕累托改进的余地的分配方案。但卡尔多-希克斯效率则不然,福利经济学证明,如果某个点上存在一个卡尔多-希克斯改进,那么改进后的分配方案可能还存在卡尔多希克斯改进,改进了一圈的结果是所有人都worse-off。也就是说,一组“卡尔多-希克斯”改进的结果是一个“帕累托改退”。&br&&br&你们说,怎么能不用数学发现这个问题!?&br&&br&所以,卡尔多希克斯效率在真正的学术领域并不被吹捧。&br&&br&&b&第三,是否存在其他的机制,可以达到市场经济所能达到的效率?&/b&&br&&br&这里就绕不开20世纪初的那场社会主义大辩论了。辩论的双方:自由市场的卫道士们,和美国社会主义者们,真的做到了抛开意识形态讨论学术问题。这比现在的马左大战奥右时动辄扯到半瓶醋政治哲学的情景不知道高到哪里去了。&br&&br&以兰德为首的“计算机社会主义者”证明了这样一个事实:任何市场经济能够达到的效率,依靠计划经济都能达到。这一点其实搞宏观的朋友们最优体会,在经典的DSGE模型当中,要判断市场是否有效率,要看均衡解和planner's problem的解之间的关系,因为planner's problem必然是有效率的。&br&&br&换言之,以上所讨论的分配,帕累托的,卡尔多-希克斯的,一切的一切,都能通过一个上帝一般的中央计划者直接实现。这个计划者替你决定了你每个月要吃多少牛肉面,替你决定了你每天工作几小时,替你计划了一生,而这个计划和给你自由之后你自己做出来的计划只好不坏。因为这个计划者是如此的学富五车,如此的洞若观火,能够根据你的任何心理活动设计出对全社会最好的生产、消费计划。&br&&br&牛B吧?嗯呐!现实吗?呃……&br&&br&诚然,现实中当然不存在这样的人,但是证明这套理论的人之所以叫“计算机社会主义者”,是因为生活在二战之前的他们相信,这种无限的知识和无限的计算能力,可以通过日新月异的计算机技术来实现。&br&&br&如果真的实现了,那么计划经济是不是就是市场经济的好的替代呢?我反正不敢说,但是起码现在,我们离那一天还很远。&br&&br&&b&第四,市场本身是否有无效率的时候?&/b&&br&&br&当然有,任何接触过经济学的人都能说出这样四个字:“市场失灵”。&br&&br&静态的市场失灵的起源是外部性,外部性是指交易双方的交易行为&u&直接&/u&影响第三方的情况,这里的“直接”去除了“隔壁老王彩票中奖我不爽”的情况。在经典的几个市场失灵的例子里,包括公共物品和公共资源(策略替代和策略互补导致无效率)、逆向选择和道德风险(信息不对称导致无效率),都可以找到外部性的影子,比如,柠檬市场中,他人售卖的二手车的质量影响了买方对我的二手车质量的判断。这也是《美丽人生》里的纳什又霸气又屌丝地说出“亚当·斯密”错了时的根本原因,泡妞儿的多方互相给对方带来外部性。&br&&br&当市场是充分竞争的,“他人的行为”浓缩在一个叫做价格的东西里面,当我们看到一包中华烟卖七十五的时候,我们知道:这烟成本很高(供给方)和这烟大家爱抽(需求方)。所以,别人的行为对我的影响,只体现在价格当中。但这种情况在某些时候就不成立,比如股市,当你看到股票的价格是5块一股的时候,由于你的盈利还和其他人的预期有关,而价格在非有效市场中不能及时反应他人的预期,于是大家开始互猜预期,导致凯恩斯所说的p-选美比赛,最终市场会失灵。&br&&br&而在动态框架下,市场的无效率可能体现在蛛网模型“发散解”和“环解”讲出来的故事中,市场在过度供给和过度需求的过程中来回震荡,最终导致资源的浪费。这与草原上,“狮子吃羚羊-羚羊变少-狮子没饭吃-狮子变少-羚羊变多-狮子有饭吃-狮子变多-狮子吃羚羊”的故事同构。&br&&br&这个过程是马克思主义者最痛心疾首的,因为市场上的失业后备军在市场的摩擦中变得越来越贫穷,社会资源越来越集中,最终导致一个很坏的结果。结合马克思当时所处的环境,这个判断正确。&br&&br&如前,在计算机社会主义者眼中,这个问题不存在。只要一切计划能够得以完美执行,那么无论是外部性,还是人为导致的经济周期,都不会存在。因为一切尽在计划,有没有这个问题还不是老娘一句话?而自由主义卫道士们通常将解决方案诉诸税收和配额,通过改变行为的激励结构,改变均衡结果,这一切都是福利经济学第二基本定理的思路。&br&&br&直到科斯横空出世,证明了所谓福利经济学第四基本定理(我自己瞎起的名字),也就是科斯定理:只要初始产权分配明确,在0交易成本的前提下,市场机制可以实现外部性的有效率分配,且这个分配与初始产权分配无关。在科斯经典的“火车和麦田”以及“灯塔”的例子中,我们可以看到这个定理是如何起作用的。&br&&br&科斯定理的本质是内部化了外部性,把所有公共生活中的权利和义务私人化。但关键问题是,交易成本(鲁滨逊一人经济中无法想象的一切成本)不可能是0,因为不交易的好处永远存在(至少节省了时间),而成本必是机会成本。所以,市场失灵还是无法完全得以有效地解决,市场本身在外部性存在的情况下总是存在。&br&&br&&b&第五,如果市场经济所能达到的效率,计划经济也能达到,那么,我们该如何选择?&/b&&br&&br&这里涉及到了运行一项制度索要花费的成本问题。非市场的支持者往往抓着上文所说的“市场失灵”四个字不放,当然卫道士们,对称地,也会抓着“政府失灵”不放,折中派说,既然两种失灵都存在,那就来个家长制或者父爱主义吧!主流的微观经济学就是持这个态度。&br&&br&不过,计划经济的根本问题不在于“政府失灵”,毕竟,政府失灵与否多半取决于“公务员队伍建设”这种超越了经济学讨论范畴的东西。&br&&br&根本问题在于,运行计划经济制度可能带来的效率损失,比市场失灵+经济周期带来的损失可能更多,更致命。事实上,过去的一个世纪的对峙,可能已经说明了这个问题。&br&&br&通常,卫道士们会说,信息的收集、处理本身是非常困难的,要让中央计划者洞悉所有需要处理的知识,并完美地处理它,根本是不可能的。通常,中央计划者制定的计划就像小学老师布置作业一样(怨念),只能布置一个适合大多数人的作业量,这对于学习足够好的学生来说,是一种时间和精力的无谓浪费,而对学习跟不上的学生来说,这意味着他还需要额外下很多功夫,而这时,教师的服务职能没有充分地释放出来,因为教师比学生掌握更多的知识,但额外下的功夫是学生自己制定的。&br&&br&哈耶克曾经从“默会知识”的角度论证过这一点,通俗点讲:很多生产生活中的现实困难,难以描述、羞于开口、容易误解、需要速度。&br&&br&在供给一方,工人砸钉子的锤头不顺手,是怎么不顺手的工人很难描绘出来。即使描绘出来了,一级一级传达给中央计划者,口口相传的后果可能是中央计划者的误解。即使理解准确,新的计划出台之后再传达给工人,不知道多少天就过去了。这造成了资源的浪费,因为如果是市场经济,工人只需要自己再去买一个顺手的锤子,然后开发票报销就完事儿了。&br&&br&在需求一方,12岁的小红刚刚发育,突然面临着卫生巾的需求,她羞红了脸心里嘀咕:“到底要怎么告诉领导人呢”?当然,这里我们不能假设领导人比小红更早知道她第一次大姨妈的时间……而在市场经济中,她只需要砸碎存钱罐去隔壁好邻居偷偷跟大妈说:“阿姨我要一包苏菲”,就齐活了。(当然,如果阿姨是北京籍的,她会大声尖嗓喊道“呦——小姑娘长大啦!”)(我太特么不正经了……)&br&&br&更一般地说,有一个叫做“哈耶克命题”的东西:在一定条件下,市场是最能节约认知资源的分配机制。知识是散在于社会各处的,散落在车间里、散落在小红的卧室里、散落在每个能发生经济活动的地方,由一个万能的中央计划者来处理这些信息,而其他人只需要像个二百五一样执行,不说能不能实现,你就想,这个计划者肯定累得跟蚁后似的。&br&&br&哈耶克在他最重要的一本著作《感觉的秩序》(无中译本,我自己曾经想翻译,一页之后就长大了……)中提到了“认知的报酬递增现象”,这与斯密(包括杨小凯)所论证的“针厂工人”问题一样,一个工人长期专注于穿针鼻儿,那么他最了解这个技术哪些地方需要革新,需要怎样革新。认知的报酬递增说的就是这个问题,一个人专注于某一方面的知识,那么知识带来的报酬是边际递增的。而如果一个人要处理各方面的知识,这种递增效应将被淹没于浩瀚的知识海洋当中。&br&&br&在成熟完善的市场经济中,每个人都只需要关注某一个领域,工人专注砸钉子,博士专注发论文,而在其他生活资料的获取上只需要到市场上去买就可以了,只要市场是完善的,每个人都不需要花心思。再套用经济学101课程中最常见的“比较优势”概念,这比计划经济,如果没有无限完美的计划者,更有效率。&br&&br&这种调整,给定经济外部环境不断变化和高度不确定的事实,是最为灵活的。&br&--------------------------------------------------------------------------------------------------------------------------------------------&br&这里大概说了一下经济学中对这个问题最经典的争辩,从现今的文献上来看,大家似乎逐渐对这个问题失去了兴趣,已经转向了“某个局部环境内”市场好还是非市场好的问题。利用激励理论讨论某一个市场的规制问题,比这种宏观上的大概念简单得多,但,个人观点,也有意义得多。&br&&br&&b&结论:孰好孰坏,各有优劣,没有观点,防止河蟹~&/b&&br&&br&以上。
好问题。这里我给大家整理一个完整的脉络吧,方便大家理解。 现有答案好像都是从“资源配置的效率”这个角度回答的,那我也先从这里说起。 说起价格是不是最好的分配机制,实际上是一个市场分配机制与非市场分配机制之间的关系的问题。在我看来,经济学三百…
&figure&&img src=&https://pic3.zhimg.com/v2-b5a7fda16f1c8a12eda322_b.jpg& data-rawwidth=&1980& data-rawheight=&1024& class=&origin_image zh-lightbox-thumb& width=&1980& data-original=&https://pic3.zhimg.com/v2-b5a7fda16f1c8a12eda322_r.jpg&&&/figure&&p&选自GitHub&/p&&p&&b&作者:Alex Rogozhnikov&/b&&/p&&p&&b&机器之心编译&/b&&/p&&blockquote&目前,Python 科学栈中的所有主要项目都同时支持 Python 3.x 和 Python 2.7,不过,这种情况很快即将结束。去年 11 月,Numpy 团队的一份声明引发了数据科学社区的关注:&a href=&https://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzA3MzI4MjgzMw%3D%3D%26mid%3D%26idx%3D1%26sn%3Dbecb176dfaa5%26chksm%3D871b3fffb06cb6e92da0d4effb0d12c4eaa19e4c9f205fade8e1ffde3bb3bb7296c%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这一科学计算库即将放弃对于 Python 2.7 的支持&/a&,全面转向 Python 3。Numpy 并不是唯一宣称即将放弃 Python 旧版本支持的工具,pandas 与 Jupyter notebook 等很多产品也在即将放弃支持的名单之中。对于数据科学开发者而言,如何将已有项目从 Python 2 转向 Python 3 成为了正在面临的重大问题。来自莫斯科大学的 Alex Rogozhnikov 博士为我们整理了一份代码迁移指南。&/blockquote&&p&&br&&/p&&p&&b&Python 3 功能简介&/b&&/p&&p&Python 是机器学习和其他科学领域中的主流语言,我们通常需要使用它处理大量的数据。Python 兼容多种深度学习框架,且具备很多优秀的工具来执行数据预处理和可视化。&/p&&p&但是,Python 2 和 Python 3 长期共存于 Python 生态系统中,很多数据科学家仍然使用 Python 2。2019 年底,Numpy 等很多科学计算工具都将停止支持 Python 2,而 2018 年后 Numpy 的所有新功能版本将只支持 Python 3。&/p&&p&为了使 Python 2 向 Python 3 的转换更加轻松,我收集了一些 Python 3 的功能,希望对大家有用。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-eaa5e1a05191dabe176e205f7d595469_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1080& data-rawheight=&600& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&https://pic2.zhimg.com/v2-eaa5e1a05191dabe176e205f7d595469_r.jpg&&&/figure&&p&&br&&/p&&p&&b&使用 pathlib 更好地处理路径&/b& &/p&&p&pathlib 是 Python 3 的默认模块,帮助避免使用大量的 os.path.joins:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&from pathlib import Path
dataset = 'wiki_images'
datasets_root = Path('/path/to/datasets/')
train_path = datasets_root / dataset / 'train'
test_path = datasets_root / dataset / 'test'
for image_path in train_path.iterdir():
with image_path.open() as f: # note, open is a method of Path object
# do something with an image
&/code&&/pre&&/div&&p&Python 2 总是试图使用字符串级联(准确,但不好),现在有了 pathlib,代码安全、准确、可读性强。&/p&&p&此外,pathlib.Path 具备大量方法,这样 Python 新用户就不用每个方法都去搜索了:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&p.exists()
p.is_dir()
p.with_name('sibling.png') # only change the name, but keep the folder
p.with_suffix('.jpg') # only change the extension, but keep the folder and the name
p.chmod(mode)
&/code&&/pre&&/div&&p&pathlib 会节约大量时间,详见:&/p&&ul&&li&文档:&a href=&https://link.zhihu.com/?target=https%3A//docs.python.org/3/library/pathlib.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&docs.python.org/3/libra&/span&&span class=&invisible&&ry/pathlib.html&/span&&span class=&ellipsis&&&/span&&/a&;&/li&&li&参考信息:&a href=&https://link.zhihu.com/?target=https%3A//pymotw.com/3/pathlib/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&pymotw.com/3/pathlib/&/span&&span class=&invisible&&&/span&&/a&。&/li&&/ul&&p&&br&&/p&&p&&b&类型提示(Type hinting)成为语言的一部分&/b&&/p&&p&PyCharm 中的类型提示示例:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-53659ac2bce0c8a216f3b2dcfffc232d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&377& data-rawheight=&219& class=&content_image& width=&377&&&/figure&&p&Python 不只是适合脚本的语言,现在的数据流程还包括大量步骤,每一步都包括不同的框架(有时也包括不同的逻辑)。 &/p&&p&类型提示被引入 Python,以帮助处理越来越复杂的项目,使机器可以更好地进行代码验证。而之前需要不同的模块使用自定义方式在文档字符串中指定类型(注意:PyCharm 可以将旧的文档字符串转换成新的类型提示)。&/p&&p&下列代码是一个简单示例,可以处理不同类型的数据(这就是我们喜欢 Python 数据栈之处)。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&def repeat_each_entry(data):
&&& Each entry in the data is doubled
&blah blah nobody reads the documentation till the end&
index = numpy.repeat(numpy.arange(len(data)), 2)
return data[index]
&/code&&/pre&&/div&&p&上述代码适用于 numpy.array(包括多维)、astropy.Table 和 astropy.Column、bcolz、cupy、mxnet.ndarray 等。&/p&&p&该代码同样可用于 pandas.Series,但是方式是错误的:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&repeat_each_entry(pandas.Series(data=[0, 1, 2], index=[3, 4, 5])) # returns Series with Nones inside
&/code&&/pre&&/div&&p&这是一个两行代码。想象一下复杂系统的行为多么难预测,有时一个函数就可能导致错误的行为。明确了解哪些类型方法适合大型系统很有帮助,它会在函数未得到此类参数时给出提醒。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&def repeat_each_entry(data: Union[numpy.ndarray, bcolz.carray]):
&/code&&/pre&&/div&&p&如果你有一个很棒的代码库,类型提示工具如 MyPy 可能成为集成流程中的一部分。不幸的是,提示没有强大到足以为 ndarrays/tensors 提供细粒度类型,但是或许我们很快就可以拥有这样的提示工具了,这将是 DS 的伟大功能。&/p&&p&&br&&/p&&p&&b&类型提示 → 运行时的类型检查&/b&&/p&&p&默认情况下,函数注释不会影响代码的运行,不过它也只能帮你指出代码的意图。&/p&&p&但是,你可以在运行时中使用 enforce 等工具强制进行类型检查,这可以帮助你调试代码(很多情况下类型提示不起作用)。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&@enforce.runtime_validation
def foo(text: str) -& None:
print(text)
foo('Hi') # ok
foo(5) # fails
@enforce.runtime_validation
def any2(x: List[bool]) -& bool:
return any(x)
any ([False, False, True, False]) # True
any2([False, False, True, False]) # True
any (['False']) # True
any2(['False']) # fails
any ([False, None, &&, 0]) # False
any2([False, None, &&, 0]) # fails
&/code&&/pre&&/div&&p&&br&&/p&&p&&b&函数注释的其他用处&/b&&/p&&p&如前所述,注释不会影响代码执行,而且会提供一些元信息,你可以随意使用。&/p&&p&例如,计量单位是科学界的一个普遍难题,astropy 包提供一个简单的装饰器(Decorator)来控制输入量的计量单位,并将输出转换成所需单位。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&# Python 3
from astropy import units as u
@u.quantity_input()
def frequency(speed: u.meter / u.s, wavelength: u.m) -& u.terahertz:
return speed / wavelength
frequency(speed=300_000 * u.km / u.s, wavelength=555 * u.nm)
# output: 540.4 THz, frequency of green visible light
&/code&&/pre&&/div&&p&如果你拥有 Python 表格式科学数据(不必要太多),你应该尝试一下 astropy。你还可以定义针对某个应用的装饰器,用同样的方式来控制/转换输入和输出。&/p&&p&&br&&/p&&p&&b&通过 @ 实现矩阵乘法&/b&&/p&&p&下面,我们实现一个最简单的机器学习模型,即带 L2 正则化的线性回归:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&# l2-regularized linear regression: || AX - b ||^2 + alpha * ||x||^2 -& min
# Python 2
X = np.linalg.inv(np.dot(A.T, A) + alpha * np.eye(A.shape[1])).dot(A.T.dot(b))
# Python 3
X = np.linalg.inv(A.T @ A + alpha * np.eye(A.shape[1])) @ (A.T @ b)
&/code&&/pre&&/div&&p&下面 Python 3 带有 @ 作为矩阵乘法的符号更具有可读性,且更容易在深度学习框架中转译:因为一些如 X @ W + b[None, :] 的代码在 numpy、cupy、pytorch 和 tensorflow 等不同库下都表示单层感知机。&/p&&p&&br&&/p&&p&&b&使用 ** 作为通配符&/b&&/p&&p&递归文件夹的通配符在 Python2 中并不是很方便,因此才存在定制的 glob2 模块来克服这个问题。递归 flag 在 Python 3.6 中得到了支持。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&import glob
# Python 2
found_images = \
glob.glob('/path/*.jpg') \
+ glob.glob('/path/*/*.jpg') \
+ glob.glob('/path/*/*/*.jpg') \
+ glob.glob('/path/*/*/*/*.jpg') \
+ glob.glob('/path/*/*/*/*/*.jpg')
# Python 3
found_images = glob.glob('/path/**/*.jpg', recursive=True)
&/code&&/pre&&/div&&p&python3 中更好的选择是使用 pathlib:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&# Python 3
found_images = pathlib.Path('/path/').glob('**/*.jpg')
&/code&&/pre&&/div&&p&&b&Print 在 Python3 中是函数&/b&&/p&&p&Python 3 中使用 Print 需要加上麻烦的圆括弧,但它还是有一些优点。&/p&&p&使用文件描述符的简单句法:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&print &&sys.stderr, &critical error& # Python 2
print(&critical error&, file=sys.stderr) # Python 3
&/code&&/pre&&/div&&p&在不使用 str.join 下输出 tab-aligned 表格:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&# Python 3
print(*array, sep='\t')
print(batch, epoch, loss, accuracy, time, sep='\t')
&/code&&/pre&&/div&&p&修改与重新定义 print 函数的输出:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&# Python 3
_print = print # store the original print function
def print(*args, **kargs):
pass # do something useful, e.g. store output to some file
&/code&&/pre&&/div&&p&在 Jupyter 中,非常好的一点是记录每一个输出到独立的文档,并在出现错误的时候追踪出现问题的文档,所以我们现在可以重写 print 函数了。&/p&&p&在下面的代码中,我们可以使用上下文管理器暂时重写 print 函数的行为:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&@contextlib.contextmanager
def replace_print():
import builtins
_print = print # saving old print function
# or use some other function here
builtins.print = lambda *args, **kwargs: _print('new printing', *args, **kwargs)
builtins.print = _print
with replace_print():
&code here will invoke other print function&
&/code&&/pre&&/div&&p&上面并不是一个推荐的方法,因为它会引起系统的不稳定。&/p&&p&print 函数可以加入列表解析和其它语言构建结构。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&# Python 3
result = process(x) if is_valid(x) else print('invalid item: ', x)
&/code&&/pre&&/div&&p&&br&&/p&&p&&b&f-strings 可作为简单和可靠的格式化&/b&&/p&&p&默认的格式化系统提供了一些灵活性,且在数据实验中不是必须的。但这样的代码对于任何修改要么太冗长,要么就会变得很零碎。而代表性的数据科学需要以固定的格式迭代地输出一些日志信息,通常需要使用的代码如下:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&# Python 2
print('{batch:3} {epoch:3} / {total_epochs:3}
accuracy: {acc_mean:0.4f}±{acc_std:0.4f} time: {avg_time:3.2f}'.format(
batch=batch, epoch=epoch, total_epochs=total_epochs,
acc_mean=numpy.mean(accuracies), acc_std=numpy.std(accuracies),
avg_time=time / len(data_batch)
# Python 2 (too error-prone during fast modifications, please avoid):
print('{:3} {:3} / {:3}
accuracy: {:0.4f}±{:0.4f} time: {:3.2f}'.format(
batch, epoch, total_epochs, numpy.mean(accuracies), numpy.std(accuracies),
time / len(data_batch)
&/code&&/pre&&/div&&p&&br&&/p&&p&样本输出:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&120 12 / 300
accuracy: 0.9 time: 56.60
&/code&&/pre&&/div&&p&f-strings 即格式化字符串在 Python 3.6 中被引入:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&# Python 3.6+
print(f'{batch:3} {epoch:3} / {total_epochs:3}
accuracy: {numpy.mean(accuracies):0.4f}±{numpy.std(accuracies):0.4f} time: {time / len(data_batch):3.2f}')
&/code&&/pre&&/div&&p&另外,写查询语句时非常方便:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&query = f&INSERT INTO STATION VALUES (13, '{city}', '{state}', {latitude}, {longitude})&
&/code&&/pre&&/div&&p&&br&&/p&&p&&b&「true division」和「integer division」之间的明显区别&/b&&/p&&p&对于数据科学来说这种改变带来了便利(但我相信对于系统编程来说不是)。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&data = pandas.read_csv('timing.csv')
velocity = data['distance'] / data['time']
&/code&&/pre&&/div&&p&Python 2 中的结果依赖于『时间』和『距离』(例如,以米和秒为单位)是否被保存为整数。&/p&&p&在 Python 3 中,结果的表示都是精确的,因为除法的结果是浮点数。&/p&&p&另一个案例是整数除法,现在已经作为明确的运算:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&n_gifts = money // gift_price
# correct for int and float arguments
&/code&&/pre&&/div&&p&注意,该运算可以应用到内建类型和由数据包(例如,numpy 或 pandas)提供的自定义类型。&/p&&p&&br&&/p&&p&&b&严格排序&/b&&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&# All these comparisons are illegal in Python 3
(3, 4) & (3, None)
(4, 5) & [4, 5]
# False in both Python 2 and Python 3
(4, 5) == [4, 5]
&/code&&/pre&&/div&&p&防止不同类型实例的偶然性的排序。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&sorted([2, '1', 3]) # invalid for Python 3, in Python 2 returns [2, 3, '1']
&/code&&/pre&&/div&&p&在处理原始数据时帮助发现存在的问题。&/p&&p&旁注:对 None 的合适检查是(两个版本的 Python 都适用):&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&if a is not None:
if a: # WRONG check for None
&/code&&/pre&&/div&&p&&b&自然语言处理的 Unicode&/b&&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&s = '您好'
print(len(s))
print(s[:2])
&/code&&/pre&&/div&&p&输出:&/p&&ul&&li&Python 2: 6\n??&/li&&li&Python 3: 2\n 您好.&/li&&/ul&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&x = u'со'
x += 'co' # ok
x += 'со' # fail
&/code&&/pre&&/div&&p&Python 2 在此失败了,而 Python 3 可以如期工作(因为我在字符串中使用了俄文字母)。&/p&&p&在 Python 3 中 strs 是 Unicode 字符串,对非英语文本的 NLP 处理更加方便。&/p&&p&还有其它有趣的方面,例如:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&'a' & type & u'a' # Python 2: True
'a' & u'a' # Python 2: False
&/code&&/pre&&/div&&p&&br&&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&from collections import Counter
Counter('M?belstück')
&/code&&/pre&&/div&&ul&&li&Python 2: &code&Counter({'\xc3': 2, 'b': 1, 'e': 1, 'c': 1, 'k': 1, 'M': 1, 'l': 1, 's': 1, 't': 1, '\xb6': 1, '\xbc': 1})&/code&&/li&&li&Python 3: &code&Counter({'M': 1, '?': 1, 'b': 1, 'e': 1, 'l': 1, 's': 1, 't': 1, 'ü': 1, 'c': 1, 'k': 1})&/code&&/li&&/ul&&p&&br&&/p&&p&这些在 Python 2 里也能正确地工作,但 Python 3 更为友好。&/p&&p&&br&&/p&&p&&b&保留词典和**kwargs 的顺序&/b&&/p&&p&在 CPython 3.6+ 版本中,字典的默认行为类似于 OrderedDict(在 3.7+版本中已得到保证)。这在字典理解(和其他操作如 json 序列化/反序列化期间)保持顺序。&/p&&p&&br&&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&import json
x = {str(i):i for i in range(5)}
json.loads(json.dumps(x))
# Python 2
{u'1': 1, u'0': 0, u'3': 3, u'2': 2, u'4': 4}
# Python 3
{'0': 0, '1': 1, '2': 2, '3': 3, '4': 4}
&/code&&/pre&&/div&&p&它同样适用于**kwargs(在 Python 3.6+版本中):它们的顺序就像参数中显示的那样。当设计数据流程时,顺序至关重要,以前,我们必须以这样繁琐的方式来编写:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&from torch import nn
# Python 2
model = nn.Sequential(OrderedDict([
('conv1', nn.Conv2d(1,20,5)),
('relu1', nn.ReLU()),
('conv2', nn.Conv2d(20,64,5)),
('relu2', nn.ReLU())
# Python 3.6+, how it *can* be done, not supported right now in pytorch
model = nn.Sequential(
conv1=nn.Conv2d(1,20,5),
relu1=nn.ReLU(),
conv2=nn.Conv2d(20,64,5),
relu2=nn.ReLU())
&/code&&/pre&&/div&&p&注意到了吗?名称的唯一性也会被自动检查。&/p&&p&&br&&/p&&p&&b&迭代地拆封&/b&&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&# handy when amount of additional stored info may vary between experiments, but the same code can be used in all cases
model_paramteres, optimizer_parameters, *other_params = load(checkpoint_name)
# picking two last values from a sequence
*prev, next_to_last, last = values_history
# This also works with any iterables, so if you have a function that yields e.g. qualities,
# below is a simple way to take only last two values from a list
*prev, next_to_last, last = iter_train(args)
&/code&&/pre&&/div&&p&&br&&/p&&p&&b&默认的 pickle 引擎为数组提供更好的压缩&/b&&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&# Python 2
import cPickle as pickle
import numpy
print len(pickle.dumps(numpy.random.normal(size=[])))
# Python 3
import pickle
import numpy
len(pickle.dumps(numpy.random.normal(size=[])))
# result: 8000162
&/code&&/pre&&/div&&p&节省 3 倍空间,而且速度更快。实际上,类似的压缩(不过与速度无关)可以通过 protocol=2 参数来实现,但是用户通常会忽略这个选项(或者根本不知道)。&/p&&p&&br&&/p&&p&&b&更安全的解析&/b&&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&labels = &initial_value&
predictions = [model.predict(data) for data, labels in dataset]
# labels are overwritten in Python 2
# labels are not affected by comprehension in Python 3
&/code&&/pre&&/div&&p&&br&&/p&&p&&b&关于 super()&/b&&/p&&p&Python 2 的 super(...)是代码错误中的常见原因。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&# Python 2
class MySubClass(MySuperClass):
def __init__(self, name, **options):
super(MySubClass, self).__init__(name='subclass', **options)
# Python 3
class MySubClass(MySuperClass):
def __init__(self, name, **options):
super().__init__(name='subclass', **options)
&/code&&/pre&&/div&&p&关于 super 和方法解析顺序的更多内容,参见 stackoverflow:&a href=&https://link.zhihu.com/?target=https%3A//stackoverflow.com/questions/576169/understanding-python-super-with-init-methods& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&stackoverflow.com/quest&/span&&span class=&invisible&&ions/576169/understanding-python-super-with-init-methods&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&&br&&/p&&p&&b&更好的 IDE 会给出变量注释&/b&&/p&&p&在使用 Java、C# 等语言编程的过程中最令人享受的事情是 IDE 可以提供非常好的建议,因为在执行代码之前,所有标识符的类型都是已知的。&/p&&p&而在 Python 中这很难实现,但是注释可以帮助你:&/p&&ul&&li&以清晰的形式写下你的期望&/li&&li&从 IDE 获取良好的建议&/li&&/ul&&figure&&img src=&https://pic4.zhimg.com/v2-14abc1ef72c0c9b44a241444_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&603& data-rawheight=&272& class=&origin_image zh-lightbox-thumb& width=&603& data-original=&https://pic4.zhimg.com/v2-14abc1ef72c0c9b44a241444_r.jpg&&&/figure&&p&这是一个带变量注释的 PyCharm 示例。即使你使用的函数不带注释(例如,由于向后兼容性),它也能工作。&/p&&p&&br&&/p&&p&&b&多种拆封(unpacking)&/b&&/p&&p&在 Python3 中融合两个字典的代码示例:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&x = dict(a=1, b=2)
y = dict(b=3, d=4)
# Python 3.5+
z = {**x, **y}
# z = {'a': 1, 'b': 3, 'd': 4}, note that value for `b` is taken from the latter dict.
&/code&&/pre&&/div&&p&可以在这个链接中查看 Python2 中的代码对比:&a href=&https://link.zhihu.com/?target=https%3A//stackoverflow.com/questions/38987/how-to-merge-two-dictionaries-in-a-single-expression& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&stackoverflow.com/quest&/span&&span class=&invisible&&ions/38987/how-to-merge-two-dictionaries-in-a-single-expression&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&aame 方法对于列表(list)、元组(tuple)和集合(set)都是有效的(a、b、c 是任意的可迭代对象):&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&[*a, *b, *c] # list, concatenating
(*a, *b, *c) # tuple, concatenating
{*a, *b, *c} # set, union
&/code&&/pre&&/div&&p&对于*args 和 **kwargs,函数也支持额外的 unpacking:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&Python 3.5+
do_something(**{**default_settings, **custom_settings})
# Also possible, this code also checks there is no intersection between keys of dictionaries
do_something(**first_args, **second_args)
&/code&&/pre&&/div&&p&&b&只带关键字参数的 API&/b&&/p&&p&&br&&/p&&p&我们考虑这个代码片段:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&model = sklearn.svm.SVC(2, 'poly', 2, 4, 0.5)
&/code&&/pre&&/div&&p&很明显,代码的作者还没熟悉 Python 的代码风格(很可能刚从 cpp 和 rust 跳到 Python)。不幸的是,这不仅仅是个人偏好的问题,因为在 SVC 中改变参数的顺序(adding/deleting)会使得代码无效。特别是,sklearn 经常会重排序或重命名大量的算法参数以提供一致的 API。每次重构都可能使代码失效。&/p&&p&在 Python3,库的编写者可能需要使用*以明确地命名参数:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&class SVC(BaseSVC):
def __init__(self, *, C=1.0, kernel='rbf', degree=3, gamma='auto', coef0=0.0, ... )
&/code&&/pre&&/div&&ul&&li&现在,用户需要明确规定参数 sklearn.svm.SVC(C=2, kernel='poly', degree=2, gamma=4, coef0=0.5) 的命名。&/li&&li&这种机制使得 API 同时具备了可靠性和灵活性。&/li&&/ul&&p&&br&&/p&&p&&b&小调:math 模块中的常量&/b&&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&# Python 3
math.inf # 'largest' number
math.nan # not a number
max_quality = -math.inf
# no more magic initial values!
for model in trained_models:
max_quality = max(max_quality, compute_quality(model, data))
&/code&&/pre&&/div&&p&&br&&/p&&p&&b&小调:单精度整数类型&/b&&/p&&p&Python 2 提供了两个基本的整数类型,即 int(64 位符号整数)和用于长时间计算的 long(在 C++变的相当莫名其妙)。&/p&&p&Python 3 有一个单精度类型的 int,它包含了长时间的运算。&/p&&p&下面是查看值是否是整数的方法:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&isinstance(x, numbers.Integral) # Python 2, the canonical way
isinstance(x, (long, int)) # Python 2
isinstance(x, int) # Python 3, easier to remember
&/code&&/pre&&/div&&p&&br&&/p&&p&&b&其他&/b&&/p&&ul&&li&Enums 有理论价值,但是字符串输入已广泛应用在 python 数据栈中。Enums 似乎不与 numpy 交互,并且不一定来自 pandas。&/li&&li&协同程序也非常有希望用于数据流程,但还没有出现大规模应用。&/li&&li&Python 3 有稳定的 ABI&/li&&li&Python 3 支持 unicode(因此ω = Δφ / Δt 也 okay),但你最好使用好的旧的 ASCII 名称&/li&&li&一些库比如 jupyterhub(jupyter in cloud)、django 和新版 ipython 只支持 Python 3,因此对你来讲没用的功能对于你可能只想使用一次的库很有用。&/li&&/ul&&p&&br&&/p&&p&&b&数据科学特有的代码迁移问题(以及如何解决它们)&/b&&/p&&p&停止对嵌套参数的支持:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&map(lambda x, (y, z): x, z, dict.items())
&/code&&/pre&&/div&&p&然而,它依然完美适用于不同的理解:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&{x:z for x, (y, z) in d.items()}
&/code&&/pre&&/div&&p&通常,理解在 Python 2 和 3 之间可以更好地「翻译」。&/p&&ul&&li&map(), .keys(), .values(), .items(), 等等返回迭代器,而不是列表。迭代器的主要问题有:没有琐碎的分割和无法迭代两次。将结果转化为列表几乎可以解决所有问题。&/li&&li&遇到问题请参见 Python 问答:我如何移植到 Python 3?(&a href=&https://link.zhihu.com/?target=https%3A//eev.ee/blog//python-faq-how-do-i-port-to-python-3/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&eev.ee/blog//&/span&&span class=&invisible&&python-faq-how-do-i-port-to-python-3/&/span&&span class=&ellipsis&&&/span&&/a&)&/li&&/ul&&p&&br&&/p&&p&&b&用 python 教机器学习和数据科学的主要问题&/b&&/p&&ul&&li&课程作者应该首先花时间解释什么是迭代器,为什么它不能像字符串那样被分片/级联/相乘/迭代两次(以及如何处理它)。&/li&&li&我相信大多数课程作者很高兴避开这些细节,但是现在几乎不可能。&/li&&/ul&&p&&br&&/p&&p&&b&结论&/b&&/p&&p&Python 2 与 Python 3 共存了近 10 年,时至今日,我们必须要说:是时候转向 Python 3 了。&/p&&p&研究和生产代码应该更短,更易读取,并且在迁移到 Python 3 代码库之后明显更加的安全。&/p&&p&现在大多数库同时支持 2.x 和 3.x 两个版本。但我们不应等到流行工具包开始停止支持 Python 2 才开始行动,提前享受新语言的功能吧。&/p&&p&迁移过后,我敢保证程序会更加顺畅:「我们不会再做向后不兼容的事情了(&a href=&https://link.zhihu.com/?target=https%3A//snarky.ca/why-python-3-exists/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&snarky.ca/why-python-3-&/span&&span class=&invisible&&exists/&/span&&span class=&ellipsis&&&/span&&/a&)」。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-18cc987d5f379a82f22318_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&73& data-rawheight=&24& class=&content_image& width=&73&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&&i&原文地址:&a href=&https://link.zhihu.com/?target=https%3A//github.com/arogozhnikov/python3_with_pleasure& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/arogozhnikov&/span&&span class=&invisible&&/python3_with_pleasure&/span&&span class=&ellipsis&&&/span&&/a&&/i&&/p&&p&&br&&/p&&p&&b&&i&本文为机器之心编译,转载请联系本公众号获得授权。&/i&&/b&&/p&
选自GitHub作者:Alex Rogozhnikov机器之心编译目前,Python 科学栈中的所有主要项目都同时支持 Python 3.x 和 Python 2.7,不过,这种情况很快即将结束。去年 11 月,Numpy 团队的一份声明引发了数据科学社区的关注:
&figure&&img src=&https://pic2.zhimg.com/v2-ee0fe1ebf8fecaa8d1d40_b.jpg& data-rawwidth=&973& data-rawheight=&612& class=&origin_image zh-lightbox-thumb& width=&973& data-original=&https://pic2.zhimg.com/v2-ee0fe1ebf8fecaa8d1d40_r.jpg&&&/figure&&p&最近,环西班牙自行车赛进行到最激烈的第二周。&/p&&p&我是重度的自行车爱好者,除了每周自己会出去“刷刷路”,还会通过比赛直播去学那些职业自行车手的骑行姿势。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-e6d3c7bb0c05eaf73d7b0_b.jpg& data-rawwidth=&1086& data-rawheight=&724& class=&origin_image zh-lightbox-thumb& width=&1086& data-original=&https://pic4.zhimg.com/v2-e6d3c7bb0c05eaf73d7b0_r.jpg&&&/figure&&p&如果充分利用好空气动力学原理,自行车手在骑行中可以避开很多风阻,甚至还能“让风成为加速的朋友”。所以,职业车手的骑车姿势会和小黄车的“淑女车骑法”是不太一样的。车手们会收紧肩膀,夹紧手肘,拱起背部,收紧核心,把自己变成「长枪」,直直的穿透前方的空气。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-f9dfa616_b.jpg& data-rawwidth=&1130& data-rawheight=&714& class=&origin_image zh-lightbox-thumb& width=&1130& data-original=&https://pic4.zhimg.com/v2-f9dfa616_r.jpg&&&/figure&&p&这样的姿势可以说是很节能了,这也是职业自行车手可以在3周的大环赛里保持40+km/h的巡航速度每天骑100-200km的重要原因之一。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-081de01cc184a4f9c02f611eeb636bcb_b.jpg& data-rawwidth=&1080& data-rawheight=&718& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&https://pic3.zhimg.com/v2-081de01cc184a4f9c02f611eeb636bcb_r.jpg&&&/figure&&p&我在纽约学习生活的时候,基本每天都会早起刷个30km再去实验室,周末还会约上俱乐部的朋友一起骑个100+km挑战一下自己。但久而久之,我发现自己的体态在发生一些变化,尤其在骑车时和正常站立时对比明显,而其他车友的身体也有类似的改变。&/p&&p&保持全力骑行的姿势时,收紧肩膀可以牢牢把控住车把,胸肌和背肌在前后同时收紧,这样上半身在车上非常稳定,在骑行时候会觉得车手很强壮。但当我们下车之后,这些骑车时候所必需的肌群就会因为派不上用场而放松休息了。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-98f957bf76a1b2d409b2a915a0d8ac5f_b.jpg& data-rawwidth=&1917& data-rawheight=&922& class=&origin_image zh-lightbox-thumb& width=&1917& data-original=&https://pic2.zhimg.com/v2-98f957bf76a1b2d409b2a915a0d8ac5f_r.jpg&&&/figure&&p&因为习惯了&b&收紧肩膀和含胸&/b&的姿势,我们在日常站立时都会不够挺拔,&b&肩膀还会略微往前收&/b&,临床上把这种体态称为&b&「圆肩」(Round shoulder)&/b&。&/p&&p&虽然骑车只是一个很小众的特例,但在日常生活中,许多伏案低头工作的学生党上班族在用电脑看手机时候,也都会采用这种“空气动力学姿势”。&/p&&p&为什么呢?&/p&&p&当然因为舒服啊。&/p&&p&不过,久而久之,这些姿势真的会给体态带来了很严重的改变。&/p&&p&所以,今天我就专门来整理一些 &b&“舒服”却有毒的姿势&/b&,这些姿势广泛存在于我们日常生活的细节中,潜移默化中影响我们的骨骼肌肉,最后改变了我们的体态。&/p&&p&&b&人躺人爱的「葛优瘫」&/b&&/p&&p&忙了一天的你,下班回家窝在沙发里等吃饭,这时候还有什么姿势比「葛优瘫」更舒服更放松呢?&/p&&figure&&img src=&https://pic3.zhimg.com/v2-59ccbcd566d711ef4a859_b.jpg& data-rawwidth=&640& data-rawheight=&362& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic3.zhimg.com/v2-59ccbcd566d711ef4a859_r.jpg&&&/figure&&p&万万没想到的是,你这种图舒服的「瘫法」,会长期积累给你的腰部肌肉和颈椎带来压力。&/p&&p&如果这种「瘫法」一开始会让人不舒服,那它就不会拥有如此广泛的「群众基础」。&/p&&p&为什么呢?还是照例画个力学示意图再来讲原理吧。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-2dcab8cba6f_b.jpg& data-rawwidth=&1733& data-rawheight=&1032& class=&origin_image zh-lightbox-thumb& width=&1733& data-original=&https://pic4.zhimg.com/v2-2dcab8cba6f_r.jpg&&&/figure&&p&「葛优瘫」的时候,其实你的腰部是毫无支撑的,是腾空的。&/p&&p&为了让腰椎在这个姿势时候不会因为重力往下坠,腰椎附近很多韧带和肌肉都会收紧,抵消重力对腰部的吸引。当这些肌群开始疲劳了,腰部就没办法支撑起身体,腰椎滑动压迫刺激到附近的神经,就会腰痛了。&/p&&p&为了让「葛优瘫而不倒」,紧贴沙发的颈肩部就要承担更大的负担。那么细小的颈肩部想要和沙发垫产生足够的摩擦力来阻止上半身往下滑,就需要有很大的压力让颈肩部压在沙发靠背上。如果把肩背部调节到正常坐姿的中立位,这个姿势就相当于你低着头并在你的脖子上挂着一个很重的杠铃一样。额外的压力会造成颈椎内部应力分布过大,颈部肌群紧张,甚至会造成韧带拉伤。&/p&&p&如果你沉迷「葛优瘫」无法自拔,你会发现,突然让你纠正回正确的坐姿,你反而会很不舒服。这是因为保持「葛优瘫」的腰肌时常发力成为了习惯,而保持正确坐姿的腰肌却被身体遗忘而开始弱化了,所以很难激活它们来维持正确的坐姿太长时间。&/p&&p&在「葛优瘫」向「坐如钟」转变过渡期间,我们需要做一些简单的锻炼来加强核心和臀部肌群,再充分拉伸下背部。&/p&&p&常用的方法有&b&肩桥、拉背和平板支撑&/b&。&/p&&ul&&li&肩桥&/li&&/ul&&figure&&img src=&https://pic3.zhimg.com/v2-50f077e6f41d45127f2fb_b.jpg& data-rawwidth=&1425& data-rawheight=&798& class=&origin_image zh-lightbox-thumb& width=&1425& data-original=&https://pic3.zhimg.com/v2-50f077e6f41d45127f2fb_r.jpg&&&/figure&&ul&&li&在地面躺平,弯曲膝盖,脚踝靠近臀部,两脚距离和肩同宽。&/li&&li&慢慢抬起骨盆,让大腿到上半身呈一直线,这个时候收紧腹部和臀部肌群。&/li&&li&然后缓慢地、有控制地放下身体回到开始的位置。&/li&&li&循环8-10次。&/li&&/ul&&p&&br&&/p&&ul&&li&拉背&/li&&/ul&&figure&&img src=&https://pic2.zhimg.com/v2-ccee11bfa88eb0fa092d7e3_b.jpg& data-rawwidth=&1158& data-rawheight=&1074& class=&origin_image zh-lightbox-thumb& width=&1158& data-original=&https://pic2.zhimg.com/v2-ccee11bfa88eb0fa092d7e3_r.jpg&&&/figure&&ul&&li&趴在瑜伽垫上,用两侧手肘夹紧身体,支撑起上半身。&/li&&li&收紧臀部,骨盆贴地,绷直脚面,依靠背肌的力量,慢慢拉长背部和颈部的脊柱。深呼吸并且保持5-10秒,然后回到刚开始的位置。&/li&&li&循环8-10次。&/li&&/ul&&p&&br&&/p&&ul&&li&平板支撑&/li&&/ul&&figure&&img src=&https://pic4.zhimg.com/v2-ee1312f39ecff4aadadf20_b.jpg& data-rawwidth=&1378& data-rawheight=&706& class=&origin_image zh-lightbox-thumb& width=&1378& data-original=&https://pic4.zhimg.com/v2-ee1312f39ecff4aadadf20_r.jpg&&&/figure&&ul&&li&用前臂和脚尖一起撑起身体。&/li&&li&从脚踝到颈部保持一条直线,像平板一样。肩膀在手肘的正上方。&/li&&li&腹肌收紧,保持5-10秒就休息调整。&/li&&li&循环8-10次。&/li&&/ul&&p&以上是可以改正「葛优瘫」的简单锻炼方法。&/p&&p&当背肌得到强化后,我们在纠正回正确的坐姿时,便可以保持比较长的时间,直到养成新的好习惯。&/p&&p&关于正确坐姿和适合座椅高度调整,可以参考我的新书&a href=&https://www.zhihu.com/publications/book/& class=&internal&&《照顾好脖子:骨科医生的手

我要回帖

更多关于 经济学是什么 的文章

 

随机推荐