目录

1,类方法

2,argparse模块

3.inspect模块

4,np.title()

5,python copy()

6,numpy--np.linalg用法

np.linalg.norm

np.linalg.eigh

np.linalg.inv()

np.linalg.det()

np.linalg.matrix_power()


1,类方法

@staticmethod,在类中使用,用于某函数之前,表明该函数是静态函数

类中的静态函数无需实例化类后使用。静态函数不需要表示自身对象的self和自身类的cls参数,就跟使用函数一样。

类中的实例方法必须传入参数self,表示该类的一个实例。

#!/usr/bin/python
# -*- coding: UTF-8 -*-class C(object):@staticmethoddef f():print('runoob');C.f();          # 静态方法无需实例化
cobj = C()
cobj.f()        # 也可以实例化后调用

2,argparse模块

add_argument

  • add_argument:读入命令行参数,该调用有多个参数
  • ArgumentParser.add_argument(name or flags…[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])

name or flags:是必须的参数,该参数接受选项参数或者是位置参数(一串文件名)

nargs: 指定该参数接受传入的参数数量

  • 当选项接受1个或者不需要参数时指定nargs=’?',当没有参数时,会从default中取值。对于选项参数有一个额外的情况,就是出现选项而后面没有跟具体参数,那么会从const中取值
  • 而对于后面需要跟多个参数的情况(–foo a1 a2 a3…),则需要设置nargs=’*’
  • nargs=’+'也和nargs=’*'一样,但是有一个区别当’+'时少于1个参数(没有参数)位置参数会报错误,而‘*’会使用默认值

3.inspect模块

import inspect

  • inspect模块主要提供了四种用处:

  1.对是否是模块、类、函数、框架进行类型检查

  2.获取源码

  3.获取类或者函数的参数信息

  4.解析堆栈

  • inspect.getfile(object): 返回对象的文件名

4,np.title()

平铺,沿着X轴、Y轴扩大矩阵

 numpy.tile([0,0],(2,3))<span style="font-family: Arial, Helvetica, sans-serif;">#在列方向上重复[0,0]3次,行2次</span>
array([[0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0]])

5,python copy()

#!/usr/bin/python
# -*- coding: UTF-8 -*-dict1 =  {'user':'runoob','num':[1,2,3]}dict2 = dict1          # 浅拷贝: 引用对象,原始数据改变,dict2改变
dict3 = dict1.copy()   # 浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用# 修改 data 数据
dict1['user']='root'
dict1['num'].remove(1)# 输出结果
print(dict1)
print(dict2)
print(dict3)
{'num': [2, 3], 'user': 'root'}
{'num': [2, 3], 'user': 'root'}
{'num': [2, 3], 'user': 'runoob'}

6,numpy--np.linalg用法

linalg=linear+algebra,包含很多线性代数的运算

np.linalg.norm

np.linalg.norm(x, ord=None, axis=None) :进行范数运算,范数是对向量(或者矩阵)的度量,是一个标量(scalar);

参数 范数类型
ord=2或None 二范数
ord=1 一范数
ord=np.inf 无穷范数

x代表矩阵ord为范数类型:当ord=2表示求特征值,然后求最大特征值的算术平方根,当ord=1表示求列和的最大值,当ord=∞表示求行和的最大值。【注】严格来讲,L0不属于范数,其表示向量中所有非零元素的个数,此处不予讲解。
axis为处理类型:当axis=1时表示按行向量处理,求多个行向量的范数。当axis=0时表示按列向量处理,求多个列向量的范数。当axis=None表示矩阵范数

import numpy as npA = np.array([[3,-4],[-6,5]])
print(A)
ret_all = np.linalg.norm(A,ord=None)
print(ret_all)                                 #ret_all返回的是2范数(平方和开根号)的值
ret_row = np.linalg.norm(A,ord=None,axis=1)
print(ret_row)                                #ret_row返回的是逐行2范数(平方和开根号)的值
ret_colume = np.linalg.norm(A,ord=None,axis=0)
print(ret_colume)                             #ret_row返回的是逐列2范数(平方和开根号)的值
ret_inf_max = np.linalg.norm(A,ord=np.Inf)
print(ret_inf_max)                           #ret_inf_max返回的无穷范数(元素是逐行中元素绝对值的和最大)
ret_inf_max_row = np.linalg.norm(A,ord=np.Inf,axis=1)
print(ret_inf_max_row)                       #ret_inf_max_row返回的是无穷范数每行元素的绝对值的最大值
ret_inf_max_colume = np.linalg.norm(A,ord=np.Inf,axis=0)
print(ret_inf_max_colume)                    #ret_inf_max_row返回的是无穷范数每列元素的绝对值的最大值
ret_inf_min = np.linalg.norm(A,ord=-np.Inf)
print(ret_inf_min)                          #ret_inf_min返回的无穷范数(元素是逐行中元素绝对值最小的值)
B = np.array([[100,-4],[-6,5]])
print(B)
ret_one = np.linalg.norm(B,ord=1)
print(ret_one)                              #ret_one返回的是求列的元素绝对值和的最大值
ret_one_row = np.linalg.norm(B,ord=1,axis=1)
print(ret_one_row)                          #ret_one_row返回的是逐行求行的元素绝对值和
ret_one_colume = np.linalg.norm(B,ord=1,axis=0)
print(ret_one_colume)                       #ret_one_row返回的是逐列求列的元素绝对值和

np.linalg.eigh

计算矩阵特征向量

np.linalg.inv()

矩阵求逆

np.linalg.det()

矩阵求行列式(标量)

np.linalg.matrix_power()

matrix_power(Mat, n):返回一个方阵的n次方,n>0,重复方阵和矩阵乘法计算;n=0,返回和M形状相同的恒等矩阵;n<0;计算方阵的abs(n)次幂后,求逆。

square_a=np.array([[1,-1,1],[2,2,2],[-1,0,-2]])
print(square_a)
print('.....矩阵对应元素相乘 \n {}'.format(square_a*square_a))
print('.....矩阵乘法 \n {}'.format(square_a@square_a))
print('.....矩阵乘法-二 \n {}'.format(np.dot(square_a,square_a)))
print('.......多个矩阵相乘\n{}'.format(square_a@square_a@square_a))
power_2=np.linalg.matrix_power(square_a, 2)
print(power_2)
power_3=np.linalg.matrix_power(square_a, 3)
print(power_3)
[[ 1 -1  1][ 2  2  2][-1  0 -2]]
.....矩阵对应元素相乘 [[1 1 1][4 4 4][1 0 4]]
.....矩阵乘法 [[-2 -3 -3][ 4  2  2][ 1  1  3]]
.....矩阵乘法-二 [[-2 -3 -3][ 4  2  2][ 1  1  3]]
.......多个矩阵相乘
[[-5 -4 -2][ 6  0  4][ 0  1 -3]]
[[-2 -3 -3][ 4  2  2][ 1  1  3]]
[[-5 -4 -2][ 6  0  4][ 0  1 -3]]

7,nn.init.uniform_用法

torch.nn.init.uniform(tensor, a=0, b=1)

从均匀分布U(a, b)中生成值,填充输入的张量或变量

8,__import__动态导入模块、getattr()得到属性值

__import__() 函数用于动态加载类和函数 。

如果一个模块经常变化就可以使用 __import__() 来动态载入

getattr(object, name[, default])

参数

  • object -- 对象。
  • name -- 字符串,对象属性。
  • default -- 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。
def import_class(name):components = name.split('.')mod = __import__(components[0])for comp in components[1:]:mod = getattr(mod, comp)return mod

9, shutil.copy2

shutil

是一种高层次的文件操作工具
类似于高级API,而且主要强大之处在于其对文件的复制与删除操作更是比较支持好。

使用方法:

copy2( src, dst) 在copy上的基础上再复制文件最后访问时间与修改时间也复制过来了,类似于cp –p的东西

10,collections.defaultdict 与setdefault()

setdefault() 需提供两个参数,第一个参数是键值,第二个参数是默认值,每次调用都有一个返回值,如果字典中不存在该键则返回默认值,如果存在该键则返回该值,利用返回值可再次修改代码

defaultdict的作用: 当字典里的key不存在但被查找时,返回的不是keyError而是一个默认值

defaultdict类的初始化函数接受一个类型作为参数,当所访问的键不存在的时候,可以实例化一个值作为默认值

from collections import defaultdict
dd = defaultdict(list)
defaultdict(<type 'list'>, {})
#给它赋值,同时也是读取
dd['h'h]
defaultdict(<type 'list'>, {'hh': []})
dd['hh'].append('haha')
defaultdict(<type 'list'>, {'hh': ['haha']})

该类除了接受类型名称作为初始化函数的参数之外,还可以使用任何不带参数的可调用函数,到时该函数的返回结果作为默认值,这样使得默认值的取值更加灵活。

>>> from collections import defaultdict
>>> def zero():
...     return 0
...
>>> dd = defaultdict(zero)
>>> dd
defaultdict(<function zero at 0xb7ed2684>, {})
>>> dd['foo']
0
>>> dd
defaultdict(<function zero at 0xb7ed2684>, {'foo': 0})
from collections import defaultdict
words = ['hello', 'world', 'nice', 'world']
#使用lambda来定义简单的函数
counter = defaultdict(lambda: 0)
for kw in words:counter[kw] += 1

11. numpy np.load

@set_module('numpy')
def load(file, mmap_mode=None, allow_pickle=False, fix_imports=True,encoding='ASCII'):

Load arrays or pickled objects from ``.npy``, ``.npz`` or pickled files.

  • file: file-like object, string, or pathlib.Path

要读取的文件;类似文件的对象必须支持 seek()read()方法;Pickled files  还需要支持"readline()"方法

  • mmap_mode : {None, 'r+', 'r', 'w+', 'c'}, optional;

如果不是None,则使用给定的模式对文件进行内存映射,内存映射的矩阵保留在磁盘上。但是,可以像访问任何ndarray一样          对其进行访问和切片。内存映射对于访问大文件的小片段而不将整个文件读入内存特别有用。

返回的是 result : array, tuple, dict, etc

返回文件中的数据。 对于.npz文件,必须关闭返回的NpzFile类实例,以避免泄漏文件描述符。

Python学习笔记-msg3d实验相关相关推荐

  1. Python学习笔记:访问数据库

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  2. Python学习笔记:常用内建模块7XML

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  3. OpenCV之Python学习笔记

    RSS订阅 登陆 注册 原文链接地址:http://www.itozi.net/19477.html OpenCV之Python学习笔记 ITOZI 发布于 2015-08-06 分类:OpenSta ...

  4. python学习笔记目录

    人生苦短,我学python学习笔记目录: week1 python入门week2 python基础week3 python进阶week4 python模块week5 python高阶week6 数据结 ...

  5. OpenCV之Python学习笔记(1)(2): 图像的载入、显示和保存 图像元素的访问、通道分离与合并

    OpenCV之Python学习笔记 一直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看到一本国外的新书< ...

  6. Python学习笔记:Day 16 编写移动App

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  7. Python学习笔记:Day15 部署Web App

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  8. Python学习笔记:Day14 完成Web App

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  9. Python学习笔记:Day13 提升开发效率

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

最新文章

  1. 一文读懂傅立叶变换处理图像的原理
  2. Android10.0 Binder通信原理(四)-Native-C\C++实例分析
  3. java_IO总结(1)
  4. .bash_profile 写入时间格式YYYY-MM-DD HH24:MI:SS 时报错 not a valid identifier
  5. vba 修改下拉列表_Excel隐藏的超实用技能,涉及VBA技巧,建议【收藏】
  6. R资讯| 广州R会第三批嘉宾揭晓!!
  7. Matlab使用for循环实现5阶乘和的计算
  8. 恶意软件清理助手 v2.50 Build 005
  9. 小米4 手机红外接口工作了
  10. Ubuntu 18.04 LTS 桌面版 WPS 安装字体
  11. OpenMP与MPI
  12. 【瑞芯微Rockchip Linux平台】SoftAp需求实现(3)动态获取BT Mac地址并更新beacon帧中的mac信息
  13. 数据中台技术架构方案
  14. 2022最令人惊艳的人工智能论文整理分享(附视频、代码)
  15. CentOS6云服务器磁盘扩容方案
  16. malloclab 实验详解(动态分配器如何设计)
  17. 用Python执行Django数据迁移时报!(1091错误及解决方法)
  18. Ubuntu v20.04 Detailed installation tutorial
  19. Virus_LPK专杀
  20. 简单、好用才是真道理,适用于初学人群的Linkboy5.0

热门文章

  1. java中判断字符串实际长度(中文2个字符,英文1个字符)的方法,包含中英文符号
  2. 压岁钱还没花完?小米、三星、华为、中兴扎堆发新机替你操碎了心...
  3. LinkCode-最多有多少个点在一条直线上
  4. 黄原胶——这种食品添加剂到底是健康的还是有害的?
  5. mysql 批量插入300万条测试数据
  6. 如何在 Debian11系统上设置静态IP地址 ?
  7. centos aarch64(arm64) iso 下载网址
  8. 第一章、统计学习方法概论
  9. hc sr04流程图_超声波测距模块工作原理_HC-SR04模块详解
  10. 【进阶知识】显示管理器,窗口管理器,桌面环境/桌面管理器,显示服务器