python语法
Python代码中func(*args, **kwargs)是什么意思?
这是Python函数可变参数 args及kwargs
*args表示任何多个无名参数,它是一个tuple
**kwargs表示关键字参数,它是一个dict
测试代码如下:
|
1
2
3
4
5
6
7
8
9
|
def foo(*args,**kwargs):print 'args=',argsprint 'kwargs=',kwargsprint '**********************'if __name__=='__main__':foo(1,2,3)foo(a=1,b=2,c=3)foo(1,2,3,a=1,b=2,c=3)foo(1,'b','c',a=1,b='b',c='c') |
执行结果如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
|
args= (1, 2, 3)kwargs= {}**********************args= ()kwargs= {'a': 1, 'c': 3, 'b': 2}**********************args= (1, 2, 3)kwargs= {'a': 1, 'c': 3, 'b': 2}**********************args= (1, 'b', 'c')kwargs= {'a': 1, 'c': 'c', 'b': 'b'}********************** |
python中transpose是什么意思?
我先来一个举例:
arr = np.arange(16).reshape((2, 2, 4))
arr的array是这样的
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]],
[[ 8, 9, 10, 11],
[12, 13, 14, 15]]])
我们对arr进行transpose转置,arr2 = arr.transpose((1,0,2)),结果是这样:
array([[[ 0, 1, 2, 3],
[ 8, 9, 10, 11]],
[[ 4, 5, 6, 7],
[12, 13, 14, 15]]])
这是怎么来的呢。
arr.transpose((1,0,2))的1,0,2三个数分别代表shape()的三个数的顺序,初始的shape是(2,2,4),也就是2维的2 x 4矩阵,索引分别是shape的[0],[1],[2],arr.transpose((1,0,2))之后,我们的索引就变成了shape[1][0][2],对应shape值是shape(2,2,4),所以矩阵形状不变。
与此同时,我们矩阵的索引也发生了类似变化,如arr中的4,索引是arr[0,1,0],arr中的5是arr[0,1,1],变成arr2后,4的位置应该是在[1,0,0],5的位置变成[1,0,1],同理8的索引从[1,0,0]变成[0,1,0]。

numpy--prod和pad运算
为了做一个笔记(●'◡'●)
assert用法:
1、assert语句用来声明某个条件是真的。2、如果你非常确信某个你使用的列表中至少有一个元素,而你想要检验这一点,并且在它非真的时候引发一个错误,那么
assert语句是应用在这种情形下的理想语句。3、当assert语句失败的时候,会引发一
AssertionError。np.newaxis
np.newaxis的功能是插入新维度,看下面的例子:
a=np.array([1,2,3,4,5])
print a.shape
print a
输出结果
(5,)
[1 2 3 4 5]
可以看出a是一个一维数组,
x_data=np.linspace(-1,1,300)[:,np.newaxis]
a=np.array([1,2,3,4,5])
b=a[np.newaxis,:]
print a.shape,b.shape
print a
print b
输出结果:
(5,) (1, 5)
[1 2 3 4 5]
[[1 2 3 4 5]]
浙公网安备 33010602011771号