Python入门:零碎知识点

np.squeeze()

从数组的形状中删除单维条目,即把shape中为1的维度去掉

np.squeeze(images)

np.transpose()

矩阵转置

arr = np.arange(16).reshape((2, 2, 4))

'''
[[[ 0,  1,  2,  3],
  [ 4,  5,  6,  7]],

 [[ 8,  9, 10, 11],
  [12, 13, 14, 15]]]
'''

arr.transpose((1,0,2))
'''
[[[ 0,  1,  2,  3],
  [ 8,  9, 10, 11]],

 [[ 4,  5,  6,  7],
  [12, 13, 14, 15]]]
'''

arr.transpose((0,2,1))
'''
[[[ 0,  4],
  [ 1,  5],
  [ 2,  6],
  [ 3,  7]],

 [[ 8, 12],
  [ 9, 13],
  [10, 14],
  [11, 15]]]
'''

arr.transpose((1,2,0))
'''
[[[ 0,  8],
  [ 1,  9],
  [ 2, 10],
  [ 3, 11]],

 [[ 4, 12],
  [ 5, 13],
  [ 6, 14],
  [ 7, 15]]]
'''

排序

sorted(iterable,key=None,reverse=False),返回新的列表,对所有可迭代的对象均有效

sort(key=None,reverse=False) 就地改变列表  reverse:True反序;False 正序

 a = [10, 2, 3, 2, 1, 3]
 a1 = sorted(a)
 print(a1, ' ', type(a1))
 a2 = sort(a)
 print(a2, ' ', type(a2))

对于字典排序:

 a = {"a": 10}
 for key in a.keys():
     print(type(key))
 for value in a.values():
     print(type(value))
 for item in a.items():
     print(type(item))
 a = {"a": 10, "b": 19, "c": 20, "d": 19}
 a1 = sorted(a.items(), key=lambda x: x[1], reverse=True)
 print(a1, ' ', type(a1))

 import operator

 a2 = sorted(a.items(), key=operator.itemgetter(0))
 print(a2, ' ', type(a2), ' ', dict(a2))

 a3 = sorted(a.items(), key=operator.itemgetter(1))
 print(a3, ' ', type(a3), ' ', dict(a3))

python跨目录调用

如上图所示,若在rest.py中调用train文件夹下train.py中的类、方法等,仅需在rest.py中添加如下代码:

#from 文件夹名.python文件 import 类/函数
#确保__init__.py在文件夹中存在
from train.train import train

若在train文件夹下train.py中调用net文件夹下AlexNet.py中的类、方法等,仅需在train.py中添加如下代码:

import sys
'''默认情况下python解析器会搜索当前目录、已安装的内置模块和第三方模块,
搜索路径存放在sys模块的path中,
这种方法是运行时修改,脚本运行后就会失效的'''
sys.path.append("..")

#from 文件夹名.python文件 import 类/函数
from net.AlexNet import AlexNet

List中string转为int/float

# Python2
data = ['1','3.2','2']  
# eval()函数用来执行一个字符串表达式,并返回表达式的值。
data = map(eval, data)  
print data 
# 输出为[1, 3.2, 2]

# Python3
ls=[1,2,3]
rs=map(str,ls)
print(rs)
# 输出为<map at 0x3fed1d0>
print(list(rs))
# 输出为['1','3.2','2'] 

匿名函数lamdba

python 使用 lambda 来创建匿名函数,表达式:lambda [arg1 [,arg2,.....argn]]:expression

  • lambda只是一个表达式,函数体比def简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
  • lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
  • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
#!/usr/bin/python 
# -*- coding: UTF-8 -*- 
# 可写函数说明 
sum = lambda arg1, arg2: arg1 + arg2; 
# 调用sum函数 
print "相加后的值为 : ", sum( 10, 20 ) 
print "相加后的值为 : ", sum( 20, 20 )

# 以上实例输出结果:
# 相加后的值为 :  30
# 相加后的值为 :  40

持续更新中……

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值