在Excel/WPS中运行Python代码

在MS官方推出Excel对Python语言支持之前,可以使用xlwings方案。 如果你采用的发行是Anaconda或WinPython,恭喜你,你已经安装了xlwings。否则,使用pip手动安装: 1 2 pip install xlwings xlwings addin install 顺利的话,你将在Excel顶端找到xlwings缎带区。在开始使用Python之前,需要对Excel进行一次性的设置。在File > Options > Trust Center > Trust Center Settings > Macro Settings下勾选Enable Trust access to the VBA project object model。 快速新建一个测试项目: 1 xlwings quickstart Book1 会新建一个Book1目录出来,Book1目录下有保存了宏的Book1.xlsm和同名Python文件Book1.py。 接下来见证奇迹。在xlwings缎带区点击Run main。

三月 1, 2021 · 1 分钟 · Hanson Hu

Python库中一些与科学计算相关的方法

1 numpy.zeros(shape, dtype=float, order='C') 返回1个给定形状和类型的新数组,并用0填充; 1 random.random() 返回在[0.0, 1.0)范围内的下一个随机浮点数; 1 random.uniform(a, b) 返回1个随机浮点数,满足条件a <= N <= b(当a <= b时); 1 random.sample(population, k) 返回从序列population中1个长度为k的取样,序列population中的元素不必是不同的值; 1 numpy.random.randint(low, high=None, size=None) 返回1个在[low, high)范围内满足离散型均匀分布的随机整数,如果high是None(默认),结果就在[0, low)范围内; 1 numpy.random.normal(loc=0.0, scale=1.0, size=None) 返回1个从正态(高斯)分布中抽样的数组; 1 numpy.array(object, dtype=None, copy=True, order=None, subok=False, ndmin=0) 创建1个数组; 1 numpy.nonzero(a) 返回1个数组的元组,元组的元素数是a的维度数,每个元素是所有非0元素在该维度上的索引组成的数组; 1 numpy.where(condition[, x, y]) 如果没有给出参数x和y,返回condition.nonzero(),即condition是True的索引的数组; 如果给出参数x和y(x、y中元素的数量必须与condition中元素的数量一致),返回一个由condition中对应位置元素是True还是False来决定从x还是y中取值的结果组成的数组; 1 numpy.cumsum(a, axis=None, dtype=None, out=None) 计算数组元素沿1个特定的轴的累和; 1 numpy.mean(a, axis=None, dtype=None, out=None) 计算数组元素沿1个特定的轴的算术平均值; 1 numpy.linalg.norm(x, ord=None, axis=None) 计算矩阵或向量的范数。如果x是矩阵,根据不同的参数ord,可以返回7个矩阵范数中的1个; 如果x是向量,可以返回无限个向量范数中的1个。

二月 10, 2014 · 1 分钟 · Hanson Hu

2010年个人总结

已过了10年的21世纪着实不能再用“未来”修饰了,这10年里,俺的国家从博客元年走到了微博元年,俺的公司从组建到今年十个年头,两手空空的俺在这座城市安了家。 2010年回顾 随着公司的业务成长,并行的项目不再是掰掰手指就能数清,项目进展不再是站在一起聊聊天就能说清。在实际工作中体会到,领导管的是人心,管理管的是流程和制度。作为基层管理者,同样不应做团队的救火队员,四处忙不迭的处理矛盾,而是提出流程、制度、方法的建设建议,从组织职能的层面看待日常工作; 有幸参加为期2个多月的脱产MBA课程培训、机场业务培训和实地考察,和为期1年的线上管理培训; 家近是一宝,2.2公里的路,恢复骑车。 2011年展望 工作只是工作,劳动不分贵贱。新的一年不知公司是否会重新启动岗位薪酬绩效体系建设项目,“如果俺是老板”,思考练习题; 最近的感觉总是时间不够用,希望有时间可以看书、上网、写程序,或者出外参加个爬梯,或者奢侈的享受一会儿阳光; 继续围绕Python、Django、MongoDB、GAE的应用开发; 也许可以再诊断一下俺这膝盖的毛病; 和迎接新的家庭成员的到来。

十二月 31, 2010 · 1 分钟 · Hanson Hu

Python字符编码常识

Unicode是被所有主要计算机公司接受的非官方字符集,而ISO 10646(UCS)是被视为全球法定标准。两个标准包括相同的字符库和二进制表示。 为了方便传输和存储,一般要对Unicode进行编码转换。常见的编码有ISO8859-1、GB2312、GBK、UTF-8,和UTF-16等,其中UTF-16直接就是Unicode编码,未做转换。Unicode 5.0如果不算兼容区共包含70217个汉字。GB2312有6763个汉字,GBK有21003个汉字,GB18030-2000有27533个汉字,GB18030-2005有70244个汉字。 Python中的str和unicode类型分别对应字节码字符串(Byte string,不提扩展ASCII字符集了)和最多占据4字节的数字(Unicode字符集)。任何时候仅在程序内部使用Unicode对象进行保存和计算,I/O时需要进行编码。decode(encoding)可以把字节码字符串转换为Unicode,encode(encoding)可以把Unicode转换为字节码字符串。 1 2 3 4 5 6 > >>> '海生' > '\xba\xa3\xc9\xfa' > >>> u'海生' > u'\u6d77\u751f' > >>> '海生'.decode('gbk') > u'\u6d77\u751f' 要工作在UTF-8下,需要将Python源代码以带BOM的UTF-8编码保存,并在文件头部添加: 1 2 > #!/usr/bin/env python > # -*- coding: UTF-8 -*- Windows上大量应用程序以代码页(Code page)为基础,简体中文Windows XP的默认代码页是936,即编码是GBK,在不指定编码时使用。 1 2 3 4 5 6 > >>> u'\u9fa5'.encode('gbk') > '\xfd\x9b' > >>> print u'\u9fa5'.encode('gbk') > 龥 > >>> print u'\u9fa5' > 龥 同样的数据经过不同的编码可以得到不同的二进制结果,如果查询同样的GBK代码页可能对应于不同的字符。也就是说,使用与环境不兼容的编码是引入乱码的原因。 1 2 3 4 5 6 > >>> u'\u9fa5'.encode('utf-8') > '\xe9\xbe\xa5' > >>> print u'\u9fa5'.encode('utf-8') > 榫 > >>> '榫' > '\xe9\xbe' 在GB18030中新添加的汉字不能使用GBK编码,即便通过GB18030编码后也不能在未配置相应代码页的终端上正常显示。 ...

一月 21, 2010 · 1 分钟 · Hanson Hu