(1)
np.max:(a, axis=None, out=None, keepdims=False)
求序列的最值
最少接收一个参数
axis:默认为列向(也即 axis=0),axis = 1 时为行方向的最值;
np.maximum:(X, Y, out=None)
X 与 Y 逐位比较取其大者;
最少接收两个参数
(2)
np.random.randint(4,size = 10) 随机生成10个0~3之间的整数
(3)
np.nditer 遍历多维数组 http://blog.csdn.net/lanchunhui/article/details/55657135
it = np.nditer(x,flags=['multi_index'],op_flags=['readwrite'])
while not it.finished:
ix = it.multi_index
...........
it.iternext()
(4)
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
在指定的间隔内返回均匀间隔的数字。返回num均匀分布的样本,在[start, stop]。
这个区间的端点可以任意的被排除在外(endpoint决定)。
(5)
当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值
http://blog.csdn.net/chenjinyu_tang/article/details/8136841
(6)
pop(key[,default])
如果键值key存在与字典中,删除dict[key],返回 dict[key]的value值。key值必须给出。
否则,返回default值。如果default值没有过出,就会报出KeyError异常。
pop()方法至少接受一个参数,最多接受两个参数。
self.update_rule = kwargs.pop('update_rule', 'sgd')
(7)
Python的hasattr() getattr() setattr() 函数使用方法
http://www.cnblogs.com/cenyu/p/5713686.html
(8)
iteritems方法
如果你想要访问键和对应的值,那就使用iteritems方法
d={'person':2,'cat':4,'spider':8}
for animal,legs in d.iteritems():
print 'A %s has %d legs' % (animal,legs)
# Prints "A person has 2 legs", "A spider has 8 legs", "A cat has 4 legs"
(9)
Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate()
http://blog.csdn.net/garfielder007/article/details/51378296
(10)
字典的get 与 setdefault
Python 字典 setdefault() 函数和get() 方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值
dict.setdefault(key,default=None)
Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值。
dict.get(key,default=None)
(11)
关于binary[range(binary.shape[0]), y] =1 和 binary[:, y] =1
第一种写法才能得到正确的结果!!!
http://www.jianshu.com/p/274740bb3c45
(12)
Python中有join()和os.path.join()两个函数,具体作用如下:
join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
os.path.join(): 将多个路径组合后返回
1、join()函数
语法: ‘sep’.join(seq)
参数说明
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
返回值:返回一个以分隔符sep连接各个元素后生成的字符串
2、os.path.join()函数
语法: os.path.join(path1[,path2[,……]])
返回值:将多个路径组合后返回
(13)
range 生成list
np.arange 生成 np.array
xrange用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器。要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间
(14)
在python中作赋值时一定要特别小心,因为别名的变动导致原始数据的改变
别名会造成程序的可读性降低,因为一个地方的变动可能会意外影响另一个地方。跟踪所有引用同一个对象的变量是十分困难的。通常用复制对象的方法取代为对象起别名。
X_train = X_train.transpose(0, 3, 1, 2).copy()
X_val = X_val.transpose(0, 3, 1, 2).copy()
X_test = X_test.transpose(0, 3, 1, 2).copy()
(15)np.pad
pad(array,pad_width,mode,**kwars)
其中array为要填补的数组(input)
pad_width是在各维度的各个方向上想要填补的长度,如((2,3),(4,5)),如果直接输入一个整数,则说明各个维度和各个方向所填补的长度都一样。
mode为填补类型,即怎样去填补,有“constant”,“edge”等模式,如果为constant模式,就得指定填补的值。
其中((2,3),(4,5))的意思是在axis = 0 的轴上,前面填充2个,后面填充3个;在axis = 1的轴上,前面填充4个,后面填充5个。
>>> a = [[1, 2], [3, 4]]
>>> np.lib.pad(a, ((3, 2), (2, 3)), 'minimum')
array([[1, 1, 1, 2, 1, 1, 1],
[1, 1, 1, 2, 1, 1, 1],
[1, 1, 1, 2, 1, 1, 1],
[1, 1, 1, 2, 1, 1, 1],
[3, 3, 3, 4, 3, 3, 3],
[1, 1, 1, 2, 1, 1, 1],
[1, 1, 1, 2, 1, 1, 1]])
(16)
在一个三层卷机网络中,W2的尺寸为self.param['W2'] = weight_scale * np.random.randn(num_filters*H*W/4, hidden_dim)
特别注意:/4 ,经过pad填充后,图像尺寸不变,经过pooling后,变为H/2,W/2。