(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.lxweimin.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。?