Python自学笔记

Ubuntu16.04系统切换Python2和python3

删除原有的链接文件:

sudo rm /usr/bin/python

建立指向python3的软链接:

sudo ln -s /usr/bin/python3.5 /usr/bin/python

查看python版本:

python --version

list和array的区别及相互转换

list不能整体进行运算
array可以整体的进行各种计算

list = array.tolist()
array = np.array(list)

控制台输出带颜色(warning or error)

方式一:
class bcolors:
HEADER = ‘\033[95m’
OKBLUE = ‘\033[94m’
OKGREEN = ‘\033[92m’
WARNING = ‘\033[93m’
FAIL = ‘\033[91m’
ENDC = ‘\033[0m’
BOLD = ‘\033[1m’
UNDERLINE = ‘\033[4m’
print bcolors.WARNING + “Warning: No active frommets remain. Continue?” + bcolors.ENDC
方式二:
sys.stdout.write(‘\033[91m’)
sys.stdout.write(str)
sys.stdout.write(‘\033[0m’)
sys.stdout.flush()
总结:使用带颜色的文本输出到控制台。

回调函数理解

你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。

获取当前执行主脚本的方法

import sys  
print sys.argv[0]  
print __file__  

numpy中array和asarray的区别

相同点:二者都是将数据转化为ndarray
不同点:当数据源是ndarray时,array仍然会复制一个副本,而asarray此时就相当于引用了。

@property

将类的方法装饰成类的属性,用 . 调用,但是不能通过 . 来修改。未完待续。

np.meshgrid()

用两个坐标轴上的点在平面上画网格

import numpy as np
a = np.array([1, 2, 3, 4])
b = np.array([5, 6, 7])
c, d = np.meshgrid(a, b)
print(c, '\n\n ',d)

输出

[[1 2 3 4]
 [1 2 3 4]
 [1 2 3 4]] 

 [[5 5 5 5]
 [6 6 6 6]
 [7 7 7 7]]

axis=0, 1, 2

axis = 0  # 对列进行操作,其他维度不变 concat就是竖向连接
axis = 1  # 对行进行操作,其他维度不变 concat就是横向连接
axis = 2  # 按通道进行操作,其他维度不变(对于图片)concat就是按层连接

ndarray.shape

[2,3,4,5] # 2个大的,3层,4高(行数),5宽(列数) 
NCHW ndarray和cudnn的格式
NHWC tensorflow的默认格式

map方法

list(map(lambda c: colorsys.hsv_to_rgb(*c), hsv))

Here,hsv is tuple with length of n.
*args 是可变参数, args 接收的是一个 tuple
**kw 是关键字参数, kw 接收的是一个 dict

clamp函数

x.clamp(a, b) 用于判断x是否在a和b之间,如果比a小则返回a,比b大则返回b。在其间的话,返回自己本身。

range和arange的区别

range(start, end, step),返回一个list对象,起始值为start,终止值为end,但不含终止值,步长为step。只能创建int型list。
arange(start, end, step),与range()类似,但是返回一个array对象。需要引入import numpy as np,并且arange可以使用float型数据。

python下划线

单下划线 开始的成员变量叫做保护变量,只有类对象和子类对象能访问;
双下划线 开始的是私有成员,只有类对象自己能够访问,子类对象也不能访问。

skimage和PIL

读取图片:

skimage.io.imread()
Image.open()

图片格式:

skimage [h, w, c] 
img[50:100,50:100] # 50~100 行,50~100 列(不包括第 100 行和第 100 列)
order  range [0-5]
0 nearest-neighbor
1 bilinear (default)
2 biquadratic
3 bicubic
4 biquartic
5 biquintic

Image 
Image.open  (width, height)
待续

调用函数时使用和 *

假设有函数
def test(a, b, c)

test(args): 的作用其实就是把序列 args 中的每个元素,当作位置参数传进去。比如上面这个代码,如果 args 等于 (1,2,3) ,那么这个代码就等价于 test(1, 2, 3) 。

test(kwargs): 的作用则是把字典 kwargs 变成关键字参数传递。比如上面这个代码,如果 kwargs 等于 {‘a’:1,’b’:2,’c’:3} ,那这个代码就等价于 test(a=1,b=2,c=3) 。

定义函数参数时使用和*

def test(*args):
  定义函数参数时 * 的含义又要有所不同,在这里 *args 表示把传进来的位置参数都装在元组 args 里面。比如说上面这个函数,调用 test(1, 2, 3) 的话, args 的值就是 (1, 2, 3) 。:

def test(**kwargs):
  类似的, ** 就是针对关键字参数和字典的了。 调用 test(a=1,b=2,c=3) 的话, kwargs 的值就是 {‘a’:1,’b’:2,’c’:3} 了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值