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=' ,args
print  'kwargs=' ,kwargs
print  '**********************'
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]]













转载于:https://www.cnblogs.com/byteHuang/p/6938548.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值