输入格式 第一行输入两个整数n,m,用空格隔开. 接下来n行,每行输入m个整数,表示输入矩阵.矩阵元素都是int范围内的整数. 输出格式 输出m行,每行n个空格隔开的整数,表示旋转以后的矩阵.注意:每行末尾不能输出多余空行. 样例输入 3 4 -1 3 6 3 7 7 9 1 10 3 4 6 样例输出 10 7 -1 3 7 3 4 9 6 6 1 3 代码实现 m,n=input().strip().split() m=int(m)#行数 n=int(n)#列数 line=[] dp=[[0…
Python 矩阵(线性代数) 这里有一份新手友好的线性代数笔记,是和深度学习花书配套,还被Ian Goodfellow老师翻了牌. 笔记来自巴黎高等师范学院的博士生Hadrien Jean,是针对"花书"的线性代数一章,初来乍到的小伙伴可以在笔记的辅佐之下,了解深度学习最常用的数学理论,加以轻松的支配. 把理论和代码搭配食用,疗效更好.笔记里列举的各种例子,可以帮初学者用一种更直观实用的方式学好线代.开始前,你需要准备好Numpy和Python. 然后来看一下,要走怎样一个疗程--…
第三节 简单的Python数据类型.变量赋值及输入输出 Python是一门解释性语言,它的执行依赖于Python提供的执行环境,前面一章介绍了Python环境安装.WINDOWS系列Python编辑和运行界面等内,这节就开始真正的语言学习了.本节介绍的内容是为了大家尽快开始使用Python编写简单的代码,是Python编程最基本的内容. 一. Python的基础数据类型 学语言首先要知道语言的数据类型,Python数据类型比较多,本节只引入最基础的字符串(str)和整数(int).浮点数(flo…
# 4*4矩阵旋转90度 def matrix_transposition(data): for index,row in enumerate(data): for col in range(index,len(row)): temp = data[index][col] data[index][col] = data[col][index] data[col][index] = temp return data if __name__ == '__main__': data = [[ col…
6.1文件对象 所有Python对文件的操作都是基于对文件对象的操作.那么就从文件对象的创建说起.open()[file()]提供初始化输入输出的接口.open()成功打开文件时会返回一个文件对象. open()方法的语法: file_object=open(filename,access_mode,buffering) filename,表示要打开的文件名的字符串,可以是相对路径也可以是绝对路径. access_mode,表示打开方式.常见有'r'.'w'.'a',分别表示读模式,写模式,追加…
脚本的执行: 1.执行时确定解释器为Python3 python3 脚本名 2.在代码开始行确定解释器为Python3,与shell相似 env命令表示全局搜索Python3解释器 #!/usr/bin/env python3 或者直接固定文件夹找 #!/usr/bin/python3 执行命令 chmod 700 脚本名 ./脚本名 __name__的使用 当前脚本直接执行时才会进入pass,如果是被别的模块导入(import)时则不执行pass内容 原理:__name__ 是当前模块名,当模…
import numpy as np numpy模块的array相乘时,有两种方式:一是矩阵形式,二是挨个相乘. 需要用矩阵形式相乘时,则要用np.dot()函数. #矩阵与矩阵相乘a = np.array([[1,2,3],[4,5,6],[7,8,9]])c = a.copy()print(a * c)print(np.dot(a, c))#a*c 得出的结果是a和c中每个元素依次相乘,为3x3的矩阵#np.dot(a, c) 得到的结果是a和c进行矩阵相乘,为3x3的矩阵 #矩阵与向量:…
python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包. 1.numpy的导入和使用 from numpy import *;#导入numpy的库函数 import numpy as np; #这个方式使用numpy的函数时,需要以np.开头. 2.矩阵的创建 由一维或二维数据创建矩阵 from numpy import *; a1=array([1,2,3]); a1=mat(a1); 创建常见的矩阵 data1=mat(zeros((3,3)));…
1.单行注释 以#开头,#右边的所有东西都被当成文字说明,而不是真正要执行的程序,只是起到辅助说明作用(#后需要先添加一个空格). 单行注释写到行内代码后边,或者单独一行均可. # 我是单行注释,#号与内容之间需要一个空格 print("hello.world") # 单行注释也可以在行内代码后边 2.多行注释 可以用一对连续的三个引号,引号中间添加注释. """ 我是多行注释 前后各有三对单引号 """ 3.TODO注释和占…
Python 中矩阵运算主要使用numpy库.NumPy的主要对象是同种元素的多维数组.这是一个所有的元素都是一种类型.通过一个正整数索引的元素表格(通常是元素是数字).因此对于随机查找来说,比python自带的list快很多. 在numpy里面通常使用两个变量:array和matrix.其实python标准类库中也有array,但是它的功能相对numpy的少很多,所以不用.matrix是array的分支,matrix可以看做二维的array,array可以是多维,matrix和array在很多…
//2019.07.10python数据分析基础——numpy(数据结构基础) import numpy as np: 1.python数据分析主要的功能实现模块包含以下六个方面:(1)numpy——数据结构基础(2)Scipy——强大的数据计算(矩阵计算.信号处理.数理分析等)(3)matplotlib——可视化图形功能模块,实现数据的图形可视化)(4)pandas——基础数据分析方法(5)scikit-learn——强大的数据分析建模库,主要用于数据挖掘(6)Keras——人工神经网络,实现…
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode第29篇,我们来看一道简单的矩阵旋转问题. 题意 题目的要求很简单,给定一个二维方形矩阵,要求返回矩阵旋转90度之后的结果. 下面我们来看两个例子: 题解 这个动图一看就明白了,也就是说我们需要将一个二维矩阵顺时针旋转90度.这个题意我们都很好理解,但是题目当中还有一个限制条件:我们不能额外申请其他的数组来辅助,也就是对我们的空间利用进行了限制. 如果没有这个条件限制其实很容易,我们只需要算出每一个坐标旋转之后的位…
远程批量执行命令 实现多线程执行 速度快 实现多并发登录 #-*- coding: utf-8 -*- #!/usr/bin/python import paramiko import threading def ssh2(ip,username,passwd,cmd): try: ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(ip,22,usern…
#!/usr/bin/env Pythonimport timeimport sys if len(sys.argv) > 1: INTERFACE = sys.argv[1]else: INTERFACE = 'eth0'STATS = []print 'Interface:',INTERFACE def rx(): ifstat = open('/proc/net/dev').readlines() for interface in  ifstat:  if INTERFACE in int…
今天总结一下最基础的输入输出和运算符 输入: python3里都是input("") input() name = input()    #输入的值会直接赋值给name name = input("请输入你的姓名:")    #("")里的话是输入提示信息 ps: 输入的值会直接赋值给name. input输入的值都是str类型如果想要输入数值类型的值可以:name = int(input())其它类型输入方法雷同. 输出: 输出刚才的name值…
矩阵SVD 奇异值分解(Singular Value Decomposition)是一种重要的矩阵分解方法,可以看做是对方阵在任意矩阵上的推广.Singular的意思是突出的,奇特的,非凡的,按照这样的翻译似乎也可以叫做矩阵的优值分解. 假设矩阵A是一个m*n阶的实矩阵,则存在一个分解使得: 其中,是一个对角阵,只有对角线上面有元素,对角先上面的元素称为矩阵A的奇异值,通常将其进行从大到小排列,在numpy中的api返回的是一个奇异值的向量,我们可以将其转换为对角阵.U和V都是单位正交阵,U和V…
矩阵一般有行也有列,所以矩阵的截取也需要包含行和列两个参数. 假设a是一个矩阵,a的截取就可写成:a[起始行:终止行,起始列:终止列],中括号中有一个逗号,逗号前的是为了分割行的,逗号后的是为了分割列的.例如: a1=np.array([[1,2,3,4],[5,6,7,8],[11,12,13,14],[2,3,4,5]]) import numpy as np a1=np.array([[1,2,3,4],[5,6,7,8],[11,12,13,14],[2,3,4,5]]) print('…
需要执行矩阵和线性代数运算,比如矩阵乘法.寻找行列式.求解线性方程组等等. 矩阵类似于3.9 小节中数组对象,但是遵循线性代数的计算规则.下面的一个例子展示了矩阵的一些基本特性: >>> import numpy as np >>> m = np.matrix([[1,-2,3],[0,4,5],[7,8,-9]]) >>> m matrix([[ 1, -2, 3], [ 0, 4, 5], [ 7, 8, -9]]) >>> #…
arrA=[[,,,],[,,,],[,,,],[,,,]] N= #声明4x4数组arr arrB=[[None] * N for row in range(N)] print('[原设置的矩阵内容]') ): ): print('%d' %arrA[i][j],end='\t') print() #进行矩阵转置的操作 ): ): arrB[i][j]=arrA[j][i] print('[转置矩阵的内容为]') ): ): print('%d' %arrB[i][j],end='\t') p…
文件对象文件对象不仅可以用来访问普通的磁盘文件,而且也可以访问其它任何类型抽象层面上的“文件”.一旦设置了合适的“钩子”,你就可以访问文件类型接口的其它对象,就好像访问的是普通文件一样.文件对象的处理要以来很多内建函数,还有很多函数会返回文件对象或者是类文件对象.进行这种轴向处理的主要原因是许多输入/输出数据结构更趋向于使用通用的接口.这样就可以在程序行为和实现上保持一致性.文件只是连续的字节序列,数据传输经常会用到字节流,无论字节流是由单个字节还是大块数据组成. 文件内建函数[open()和f…
diagonal Return specified diagonals. diagflat Create a 2-D array with the flattened input as a diagonal. trace Sum along diagonals. triu Upper triangle of an array. tril Lower triangle of an array. 先讲一个方阵的对角线下的下三角阵和对角线上的上三角阵提取出来(如果只需要上下三角阵,则去掉tril/tr…
在读图片时,会用到这么的一段代码: image_vector_len = np.prod(image_size)#总元素大小,3*55*47 img = Image.open(path)         arr_img = np.asarray(img, dtype='float64')         arr_img = arr_img.transpose(2,0,1).reshape((image_vector_len, ))# 47行,55列,每个点有3个元素rgb.再把这些元素一字排开…
1.矩阵的创建 由一维或二维数据创建矩阵 a1=array([1,2,3]); a1=mat(a1); data1=mat(zeros((3,3))); #创建一个3*3的零矩阵,矩阵这里zeros函数的参数是一个tuple类型(3,3) data2=mat(ones((2,4))); #创建一个2*4的1矩阵,默认是浮点型的数据,如果需要时int类型,可以使用dtype=int data3=mat(random.rand(2,2)); #这里的random模块使用的是numpy中的random…
numpy有很多方法进行转置,这里由于时间和精力限制(主要是我实在比较懒,有一个基本上一直能使的,就懒得看其他的了),其他方法我没研究,这里我总结的东西,如果有问题,欢迎各路大佬拍砖 一.创建矩阵: 使用numpy库的matrix函数:matrix() 结果: 二.创建向量: 使用numpy的array()函数: 结果: 注意:使用该方法,我们得到的是行向量. 三.转置: 1.transpose()函数: 结果: 但是,它有缺点,就是不能对一维行向量,做转置,使之变成,一维列向量. 结果: 没有…
举个栗子: # 两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵: # 使用 for 迭代并取出 X 和 Y 矩阵中对应位置的值,相加后放到新矩阵的对应位置中. import numpy as np a = np.random.randint(1,100,(3,3)) print(a) b = np.random.randint(1,100,(3,3)) print(b) Z =np.zeros(shape=(len(a),len(a[0]))) print(Z) for…
一.矩阵生成 1.numpy.matrix: import numpy as np x = np.matrix([ [1, 2, 3],[4, 5, 6] ]) y = np.matrix( [1, 2, 3, 4, 5, 6]) print(x, y, x[0, 0], sep='\n\n') matrix([[1, 2, 3] [4, 5, 6]]) [[1 2 3 4 5 6]] 1 [[1 2 3]] 2.numpy.matlib.empty( shape, dtype, order)…
方法1: label = label.T[::-1].transpose() 方法2: label = label[:,::-1] 方法3: 使用 numpy.fliplr https://docs.scipy.org/doc/numpy/reference/generated/numpy.fliplr.html numpy.fliplr numpy.fliplr(m)[source] Flip array in the left/right direction. Flip the entrie…
一.二维列表 a = [[col for col in range(4)] for row in range(4)] [[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]…
1.  from here. diagonalReturn specified diagonals. diagflatCreate a 2-D array with the flattened input as a diagonal. traceSum along diagonals. triuUpper triangle of an array. trilLower triangle of an array. 2. DTW distance. dtaidistance from dtaidis…
假设n是一个numpy或者torch.tensor张量,那么 n[a:b,c:d]则代表从a到b行(不含b行),c到d列(不含d列)的切片 当然,ab.cd中的数是可以省略掉,只要abcd中有一个数即可 import torch m = [[-1.5805, 1.6342, 0.2004, 0.1923, 0.2503, -0.0467, -1.9203], \ [-1.6402, 0.5139, 1.8963, 0.5725, 0.4209, 0.6523, -1.6669], \ [-1.8…