CS231n_python_numpy

(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。 

你可能感兴趣的:(CS231n_python_numpy)