python实用技巧(一)
来源:互联网 发布:linux 当前路径命令 编辑:程序博客网 时间:2024/04/28 20:06
Python实用技巧(一)
python实用技巧(二)
python实用技巧(三)
python实用技巧(四)
已知X
是多维数组类型,则:
X[:, v],表示的是truncate X中的一些列(对应于v==1),v是布尔向量,长度与X的列数相等
X[v, :],表示的是truncate X中的一些行,v是布尔向量,长度与X的行数相等
查询python的版本
在操作系统(Windows或者Linux)命令行界面下:
> python -VPython 3.4.3 :: Anaconda 2.3.0 (32-bit)
如果我们已经进行python命令环境下呢:
>>> import sys>>> sys.version'3.4.3 |Anaconda 2.3.0 (32-bit)| (default, Mar 6 2015, 12:08:17) [MSC v.1600 32 bit (Intel)]'>>> sys.version[:5]'3.4.3'
查询包的版本
>>> import library_name>>> library_name.__version__'*.*.*' # 如果我们使用dir(),返回其属性和方法以list of strings的形式 # 我们会看到该对象内部会维护__version__
requirements.txt文件的使用
requirements.txt
文件一般用来保存第三方的库名及其对应的版本信息,如:
numpy==1.9.2Theano==0.7.0
将所有需要安装的库以文件的形式统一进行安装,避免了手动的一个库一个库的安装。
切换到该.txt
文件所在的文件夹下:
pip install -r requirements.txt
list comprehension
使用list comprehension
(最外层为[ ]
)的目的是使用简洁的方式创建一个list(也即list comprehension返回一个list),而list是一个可迭代对象(iterables):
在list comprehension中增加判断逻辑(也即filter):
[exp for x in seq if COND]
注意:不是[exp for x in seq and COND],也不是[exp if COND for x in seq]。
>>> [i**2 for i in range(10) if i%2 == 0][0, 4, 16, 36, 64]>>> type([i**2 for i n range(10) if i%2 == 0])list>>> for i in [i**2 for i in range(10) if i%2==0]: print(i)04163664
由( )
包裹的是生成器类型(generator),也是一种可迭代类型(iterables)
>>> type((i**2 for i in range(10) if i%2==0))generator>>> for i in (i**2 for i in range(10) if i%2==0): print(i)04163664
格式化输出自然是format
>>> print(1/6)0.16666666666666666 # 默认>>> print('{0}'.format(1/6))0.16666666666666666 # 默认>>> print('{0:.2f}'.format(1/6))0.17>>> print('{0:.0f}'.format(1/6))0 # 本身含有四舍五入的操作
不可以{:d}
的形式输出一个float:
>>> print('{0:d}'.format(10.0))ValueError: Unknown format code 'd' for object of type 'float'>>> print('{0:.0f}'.format(10.0))10
api含义
np.random.randn() ~ N(0, 1), 标准高斯分布np.random.rand() ~ U(0, 1), [0, 1]区间上的均匀分布
ipython:查看日期
>>> !date当前日期: 2015/12/19 周六输入新日期: (年月日)
enumerate与zip组合
enumerate(zip(, ))
生成的每一个可迭代的对象是一个二元元组,元组第一位是其序号,第二位是zip打包返回的内容;
for i, (param, true, est) in enumerate(zip('ABCD', [A, B, C, D], plesq[0])): plt.text(10, 3-i*.5, ''.format())
采样
# data是一维数组n = len(data) idx = np.random.randin(0, n, size=(nsamples, n))samples = data[idx] # samples的shape也变为(nsamples, n)
生成字符型000000-999999
for i in range(1000000): passwd = str(i) if len(passwd) < 6: passwd = (6-len(passwd))*'0'+passwd print(passwd)
listA + listB(表示concatenate)
两个list之间进行相加的意义何在:
>>> [1, 2]+[3, 4][1, 2, 3, 4] # 实现一种拼接,相当于extend # 只有加法(也即拼接)运算。 # 没有乘除,也没有减法>>> [1, 2] + 3TypeError: can only concatenate list (not "int") to list
错误提示很清楚:
can only concatenate list (not "int") to list
只允许list
和list
进行concatenate
,而不可将list
和int
进行concatenate
。
在LeNet5的源程序中:
params = layer3.params + layer2.params + layer1.params + layer0.params # 其中每一层的params都是list类型 # 最终的params是全部组成的list
chr()与ord()
>>> chr(65)'A'>>> ord('A')65>>> chr(ord('A')+1)'B'
分数的表示以及分数的约分
>>> from fractions import Fraction>>> Fraction(1, 2)Fraction(1, 2)>>> Fraction(2, 4)Fraction(1, 2)
- python实用技巧(一)
- 实践杂谈(3)—— Python实用技巧(一)
- Python 实用技巧(上)
- python实用技巧(二)
- python实用技巧(三)
- python实用技巧(四)
- jQuery实用技巧(一)
- C++实用技巧(一)
- numpy实用技巧(一)
- Vim实用技巧(一)
- JavaScript实用技巧集锦(一)
- JavaScript实用技巧集锦 (一)
- sql常用实用技巧(一)
- Python实用技巧
- Python实用技巧
- Python 实用技巧
- python实用技巧
- Python的一些实用技巧(1)
- javascript DOM innerHTML createElement createTextNode
- Java文件锁
- 数据结构之排序算法
- LeetCode-Linked List
- 基础练习 十六进制转八进制
- python实用技巧(一)
- 模板生成系统
- mysql表的死锁解决
- 提高SQL查询效率 的10大方法
- 《java》笔记<三>
- clippingNode在Android上显示无效
- 全面解析 Java 注解
- 仿微信聊天置顶,删除效果
- Android Studio 以及 Eclipse(1)--Module