矩阵

NumPy矩阵运算

落爺英雄遲暮 提交于 2020-01-27 04:35:21
矩阵初始化 import numpy as np m = np . zeros ( [ 3 , 5 ] ) # print ( m ) n = np . ones ( [ 3 , 5 ] ) print ( n ) 生成3X5的矩阵值为0,1; #生成随机数矩阵 mn = np . random . rand ( 3 , 5 ) #3行4列的0-1之间的随机数矩阵 print ( mn ) #单位矩阵 z=np.eye(4)#4行4列一条对角线为1的单位矩阵 print (z) 2,矩阵的元素运算 / 矩阵相加相减的条件 必须矩阵大小相等 eg: import numpy as np z = np . eye ( 4 ) #这是一个对角线为1的矩阵 print ( z ) n = np . ones ( [ 4 , 4 ] ) print (n) print ( z + n ) 矩阵数乘:一个数乘以整个矩阵 import numpy as np z = np . mat ( [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] , [ 7 , 8 , 9 ] ] ) z = 10 * z print ( z ) 矩阵所有元素求和 #这里区别sum(),和np.sum();sum()返回的是每一列的和组成的裂变,np.sum()返回矩阵和 import numpy as

蛇形矩阵

久未见 提交于 2020-01-26 23:58:45
题目:这个蛇形方阵大家都知道吧?不知道就看下面的矩阵找规律 蛇形方阵 【问题描述】 输入 n,n≤100 。输出 n阶蛇形方阵。例如n=5时,输出如下: 1 2 6 7 15 3 5 8 14 16 4 9 13 17 22 10 12 18 21 23 11 19 20 24 25 算法: 1、那个先说一下,最近学了STL库的动态数组,是用这个编的( STL动态数组vector ),有一些句子可以用后面注释着的替换,请各位原谅。 2、本算法就是纯模拟,没有用任何优化,各路高手请勿吐槽。 3、其实这个东西用心还是能找到规律的,当x、y坐标都为奇数或都为偶数时,往↗右上走,撞墙就往右或下走; 当x、y坐标一奇一偶时,往↙左下走,撞墙就往下或右走;(右或下 和 下或右是不一样的,右或下是不能右再下,反之亦然) 标程: #include<bits/stdc++.h> using namespace std; int i,j,zi,n; int main() { scanf("%d",&n); vector<vector<int> >a;//就是定义一个数组a,可以写为:int a[10000][100000]; a.resize(n);//这个要是用int a[][]定义,就不要了。 for (i=0;i<n;i++)a[i].resize(n);//这个要是用int a[][]定义

48. 旋转图像(java)

喜欢而已 提交于 2020-01-26 23:18:41
给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3] ] 示例 2: 给定 matrix = [ [ 5, 1, 9,11], [ 2, 4, 8,10], [13, 3, 6, 7], [15,14,12,16] ], 原地旋转输入矩阵,使其变为: [ [15,13, 2, 5], [14, 3, 4, 1], [12, 6, 8, 9], [16, 7,10,11] ] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/rotate-image 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 class Solution { public void rotate ( int [ ] [ ] matrix ) { int n = matrix . length ; for ( int i = 0 ; i < n / 2 ; i ++ ) { for ( int j = i ; j < n - i -

二维数组的查找(编程题目)

喜你入骨 提交于 2020-01-26 21:22:07
二维数组的查找 题目分析 暴力求解 O ( n l g n ) O(nlgn) O ( n l g n ) python代码如下: 技巧法 O ( n ) O(n) O ( n ) python代码如下 二维二分查找法 O ( l g n ) O(lgn) O ( l g n ) python代码如下 题目描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 题目分析   任何一道算法题,在拿到题目之后,都是首先从基础的题干入手,了不起我看不懂任何题干中的隐藏信息,我直接暴力求解,起码让自己有一定的思路,先能解决问题,对于笔试题目的编程,有可能由于测试用例的量级比较小,直接求解了。而且对于一般的问题(排除很明显的动态规划、或者贪心算法暗示,这种题目暴力法很可能达到指数复杂度)。最最最传统的暴力法没有意义,不做讲解,首先抓住题干中的行(列)内有序,大不了这个有序就可以使用二分查找,同时也要认清楚线性有序,有序基本上必然和二分查找分不开了。 暴力求解 O ( n l g n ) O(nlgn) O ( n l g n )   首先来讲解暴力求解,如上分析,这个暴力求解不是指 O ( n 2 ) O(n^2) O ( n 2 )

numpy.meshgrid(),numpy.mgrid()

别说谁变了你拦得住时间么 提交于 2020-01-26 21:12:15
numpy.meshgrid() 当需要网格坐标表示的时候需要给定一定范围的矩阵坐标,分别输入X,Y,Z之类的坐标会很麻烦,比如画一个6个点的网格需要输入 x = numpy.array([[0, 1, 2], [0, 1, 2]]) y = numpy.array([[0, 0, 0], [1, 1, 1]]) 当表示大范围矩阵的时候这种做法会很费时,所以可以利用meshgrid() 同样的表示上面的6个点的网格用meshgrid()可以写成: x = numpy.array([0, 1, 2]) y = numpy.array([0, 1]) X, Y = numpy.meshgrid(x, y) 也可以利用numpy.linspace()生成等差数列更简洁的表示更大数量的矩阵 比如 x = numpy.linspace(0,500,20) 表示从0到500等差生成20个 y = numpy.linspace(0,500,20) 同上 X,Y = numpy.meshgrid(x, y) numpy.mgrid() 可以更方便的生成矩阵网格 numpy.mgrid[start:end:step] 比如三行三列x,y=numpy.mgrid[-5:5:3j,-2:2:3j],3j表示三个点 x ([[-5., -5., -5.], [ 0., 0., 0.], [ 5., 5.,

特殊矩阵的压缩存储

不问归期 提交于 2020-01-26 18:08:28
所谓特殊矩阵:是指矩阵中值相同的元素或者零元素的分布有一定的规律。常见的特殊矩阵有:对称矩阵、三角矩阵、对角矩阵。 注意:它们都是方阵,即行数和列数相同。 主对角线:在矩阵中每个元素的行标等于纵标(i==j)。 上三角:在矩阵中每个元素的行标小于纵标(i<j)。 下三角:在矩阵中每个元素的行标大于纵标(i>j)。 一、对称矩阵的压缩存储 一个n阶方阵A[n][n]中的元素满足ai,j=aj,i(0<=i,j<=n-1),则称其为n阶对称矩阵。 压缩存储:由于元素关于主对角线对称,在存储时只存储对称矩阵的上三角或下三角元素,使得对称的元素共享一个存储空间。( 以行序为主序存储其下三角+主对角线的元素 ,一共要存储n*(n+1)/2个元素) 由于k的序号=所有它前面元素的个数=所在行前面行的所有元素+所在行它前面的元素(包括本身)。 一维数组k与与二维数组元素的i、j之间的关系: 当i>=j时,k=i*(i+1)/2 + j;//本例都是以0为开始的下标,以下也是类同。 当i<j时,k=j*(j+1)/2+i; 二、三角矩阵的压缩矩阵 上三角矩阵:当一个方阵的主角线以下的所有元素皆为零; 当i<=j时,k=(i-1)*(2n-i+2)/2+j-2;(以下公式为了方便理解,i,j,k都是从1开始) 矩阵元素压缩放在一维数组上,可以理解为: 如5*5矩阵上三角矩阵第一行为5个元素

1 矩阵代数

陌路散爱 提交于 2020-01-26 09:37:18
文章目录 1.6 特征值、特征向量和矩阵的迹 一、 特征值和特征向量 二、矩阵的迹 1.7 正定矩阵和非负定矩阵 1.8 特征值的极值问题 1.6 特征值、特征向量和矩阵的迹 一、 特征值和特征向量 ∣ A − λ I ∣ = 0 (1.6.1) |A-\lambda I|=0\tag{1.6.1} ∣ A − λ I ∣ = 0 ( 1 . 6 . 1 ) (1.6.1)有 p p p 根(可能有重),记作 λ 1 , λ 2 , ⋯   , λ p \lambda_1,\lambda_2,\cdots,\lambda_p λ 1 ​ , λ 2 ​ , ⋯ , λ p ​ 可能实,也可能复(虽 A A A 是实阵) 今后,一般取 x x x 为单位向量   A A A 和 A ′ A' A ′ 有相同特征值 A A A 和 B B B 是 p × q p\times q p × q 和 q × p q\times p q × p , 则 A B AB A B 和 B A BA B A 有相同非零特征值 证 可见,两个关于入的方程,-ABI=0和d-BA=0有着完全相同的非零根(若有重根 则它们的重数也相同)0,故而AB和BA有相同的非零特征值。 例1.6.2(有用结论)设A和B为两个かX矩阵,则AB和BA有完全相同的特征值。 例1.6.3设a=(2,-4,1),b=(3,5,

Ajax 传数组 怎么接受

陌路散爱 提交于 2020-01-26 08:22:45
var arr1 = [{ "aa": "1", "bb": "2" }, { "aa": "3", "bb": "4"}]; //第一个数组存入键值对 var arr2 = [{ "aa": "1", "bb": "2" }, { "aa": "3", "bb": "4"}]; var arr3 = new Array(); arr3.push(arr1); arr3.push(arr2); var array = ["hello", 12, true, { "name": "xiaoming", "age": 4}]; //为了区别第一个数组 这里好作比较 var s1 = new Array(); var s1 = [[3, 1], [2, 3, 4], 3, [4, 5, 6, 7, 8]]; //二维数组 2019年9月10日 我整整挂了两年多 出道以来 两年多哇! 这个不是二维数组 是交错数组 这里改正 var s2 = new Array(); s2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]; //一维数组 function aaa() { var url = 'Handler1.ashx/?action=ccc'; $.ajax({ type: "Post", url: url, data: { list1: arr1, list2: array,

第01课 黑白图像的表示

梦想与她 提交于 2020-01-26 07:06:56
****学科: 人工智能 年级: 七年级 课题: 第01课 黑白、灰度图像的表示 教学目标: 1.认识图像处理技术的应用。 2.了解小孔成像、凸透镜成像及照相机原理,知道什么是数码相机,什么是数字图像(以下简称图像)。 3.知道计算机对图像的认识和处理是通过对数据的处理来实现的。 4.理解什么是像素,什么是像素密度。 5.知道什么是二维数组,学会用数组来表示黑白、灰度图像。 6.理解分辨率大小与图像清晰度之间的关系。 教学重点: 理解什么是像素,什么是分辨率。 教学难点: 学会用数组来表示黑白、灰度图像。 教学准备: 小孔成像演示PPT,凸透镜成像swf,照相机原理mp4, 复旦大学人脸识别迎新mp4。 教学设计: 一、开放导入 1.手机自拍原图与美颜的对比。 2.播放视频:复旦大学人脸识别迎新mp4 3.你还知道实际生活中哪些地方利用到了图像处理技术?(车牌识别、自动驾驶等) 这些技术的实现,都离不开计算机对图像的认识与处理,让我们从最基本的开始学习。 二、核心过程推进 一、计算机如何“看”世界—由光学影像到数字影像 1.小孔成像。小孔成像演示PPT 2.照相机原理。凸透镜成像swf,照相机原理mp4。 3.数码相机。利用感光元件和电子传感器将光学影像转换成数字数据。 4.计算机通过对数据的分析和处理来识别和处理图像。 二、计算机如何表示图像—像素与二维数组 1.像素

np.outer 使用

时光毁灭记忆、已成空白 提交于 2020-01-26 02:42:22
np.outer(a,b)计算矩阵的外积,也就是把a当做列向量,b当做行向量,得到一个n*m的矩阵,例如: np.outer(np.array([3,4]),np.array([2,3])) 结果是; array([[ 6, 9], [ 8, 12]]) 3*2=6 3*3=9,4*2=8,4*3=12 就是a中每个元素与b中元素相乘。 来源: CSDN 作者: ML_BOY 链接: https://blog.csdn.net/qq1483661204/article/details/103786201