python输出n×n的矩阵,numpy逆矩阵函数

  python输出n×n的矩阵,numpy逆矩阵函数

  在NumPy中,matrix是ndarray的子类。与数学概念中的矩阵一样,NumPy中的矩阵也是二维的。mat、Matrix和bmat函数可用于创建矩阵。本文将详细讲解NumPy中矩阵和一般函数的使用,有兴趣的可以看看。

  00-1010 I .创建矩阵II。从现有矩阵创建新矩阵。一般职能四。算术运算在NumPy中,矩阵是ndarray的子类。与数学概念中的矩阵一样,NumPy中的矩阵也是二维的。mat、Matrix和bmat函数可用于创建矩阵。

  

目录

  mat函数创建矩阵时,如果输入已经是矩阵或ndarray对象,则不会为它们创建副本。所以调用mat()函数相当于调用matrix(data,copy=False)。

  1)在创建矩阵的特殊字符串中,矩阵的行用分号分隔,行中的元素用空格分隔。调用mat函数用下面的字符串创建一个矩阵:

  将numpy作为np导入

  a=NP . mat( 1 2 3;4 5 6;7 8 9)

  print(从字符串创建:,A)

  运行结果:

  从字符串:创建

  [[1 2 3]

  [4 5 6]

  [7 8 9]]

  2)利用t属性获得转置矩阵

  Print (transpose a:,a.t) #获取具有t属性的转置矩阵

  3)使用I属性获得逆矩阵

  Print (inverse a:,a.i) #用I属性获取逆矩阵

  4)用NumPy数组创建矩阵。

  B=np.mat(np.arange(9))。整形(3,3))

  Print(从array:创建,b) #使用NumPy数组创建

  以上操作结果:

  从字符串:创建

  [[1 2 3]

  [4 5 6]

  [7 8 9]]

  移调A:

  [[1 4 7]

  [2 5 8]

  [3 6 9]]

  逆A:

  [ 3.15251974e 15 -6.30503948e 15

  [6.30503948 e 15 1.26100790 e 16-6.30503948 e 15]

  [ 3.15251974e 15 -6.30503948e 15

  从数组:创建

  [[0 1 2]

  [3 4 5]

  [6 7 8]]

  

一、创建矩阵

  我希望使用一些现有的较小矩阵来创建一个新的大矩阵。这可以通过bmat函数来实现。这里B代表“块”,bmat代表块矩阵。

  1)首先创建一个3*3的单位矩阵:

  C=np.eye(3)

  打印( C: ,C)

  运行结果:

  C:

  [[1.0.0.]

  [0.1.0.]

  [0.0.1.]]

  2)创建一个与C类型相同的矩阵,并将其乘以2

  D=2 * C

  打印( D: ,D)

  运行结果:

  D:

  [[2.0.0.]

  [0.2.0.]

  [0.0.2.]]

  uote>

  3)使用字符串创建复合矩阵:

  字符串的格式与 mat 函数中一致,只是在这里你可以用矩阵变量名代替数字:

  

print("Compound matrix\n", np.bmat("C D;C D"))

  运行结果:

  

Compound matrix:
[[1. 0. 0. 2. 0. 0.]
[0. 1. 0. 0. 2. 0.]
[0. 0. 1. 0. 0. 2.]
[1. 0. 0. 2. 0. 0.]
[0. 1. 0. 0. 2. 0.]
[0. 0. 1. 0. 0. 2.]]

  

  

  

三、通用函数

  通用函数的输入是一组标量,输出也是一组标量,它们通常可以对应于基本数学运算,如加、减、乘、除等。

  1、使用NumPy中的 frompyfunc 函数,通过一个Python函数来创建通用函数,步骤如下:

  1)定义一个回答某个问题的Python函数

  2)用 zeros_like 函数创建一个和 a 形状相同,并且元素全部为0的数组 result

  3)将刚生成的数组中的所有元素设置其值为42

  2、在 add 上调用通用函数的方法

  通用函数并非真正的函数,而是能够表示函数的对象。通用函数有四个方法,不过这些方法只对输入两个参数、输出一个参数的ufunc对象有效,例如 add 函数。

  其他不符合条件的ufunc对象调用这些方法时将抛出 ValueError 异常。因此只能在二元通用函数上调用这些方法。以下将逐一介绍这4个方法:

  reduce()、accumulate()、reduceat()、outer()

  1) 沿着指定的轴,在连续的数组元素之间递归调用通用函数,即可得到输入数组的规约(reduce)计算结果。

  对于 add 函数,其对数组的reduce计算结果等价于对数组元素求和。调用reduce 方法:

  

a = np.arange(9)

  print("Reduce:", np.add.reduce(a)) #调用add函数的reduce方法

  运行结果:

  

Reduce 36

  

  2)accumulate 方法同样可以递归作用于输入数组

  在 add 函数上调用 accumulate 方法,等价于直接调用 cumsum 函数。在 add 函数上调用 accumulate 方法:

  

print( "Accumulate", np.add.accumulate(a)) #调用add函数的accumulate方法

  运行结果:

  

Accumulate [ 0 1 3 6 10 15 21 28 36]

  

  3)educeat 方法需要输入一个数组以及一个索引值列表作为参数。

  

print ("Reduceat", np.add.reduceat(a, [0, 5, 2, 7]))

  educeat 方法的作用是,在数列a中,分别计算索引间的累加,比如上述的[0, 5, 2, 7],分别计算索引0-5,5-2(5>2,所以直接取索引为5的数据),2-7,7-(-1) 等四组序列形成的

  

  比如,0-5就是计算A-E列中的数据,结果为10;5-2,直接取索引为5,即F的数据5;2-7,即B-G的计算结果为20;7-(-1)即索引7到最后,也即H、I的计算结果为15。

  

  4)outer 方法

  返回一个数组,它的秩(rank)等于两个输入数组的秩的和。它会作用于两个输入数组之间存在的所有元素对。在 add 函数上调用 outer 方法:

  

print("Outer:\n", np.add.outer(np.arange(3), a))

  运行结果:

  

Outer:
[[ 0 1 2 3 4 5 6 7 8]
[ 1 2 3 4 5 6 7 8 9]
[ 2 3 4 5 6 7 8 9 10]]

  

  

  

四、算术运算

  在NumPy中,基本算术运算符+、-和 * 隐式关联着通用函数 add 、 subtract 和 multiply ,对NumPy数组使用这些算术运算符时,对应的通用函数将自动被调用。除法包含

  的过程则较为复杂,在数组的除法运算中涉及

  三个通用函数 divide 、 true_divide 和floor_division ,以及两个对应的运算符 / 和 // 。

  1、除法运算:

  

import numpy as np

  a = np.array([2, 6, 5])

  b = np.array([1, 2, 3])

  print("Divide:\n", np.divide(a, b), np.divide(b, a))

  除了divide()函数外,还有floor_divide(),以及运算符‘/’和‘//’,(‘/’和‘//’分别和divide和floor_divide作用一样)如下代码:

  

import numpy as np

  a = np.array([2, 6, 5])

  b = np.array([1, 2, 3])

  print("Divide:\n", np.divide(a, b), np.divide(b, a))

  print("True Divide:\n", np.true_divide(a, b), np.true_divide(b, a))#回除法的浮点数结果而不作截断

  print("Floor Divide:\n", np.floor_divide(a, b), np.floor_divide(b, a)) #返回整数结果

  c = 3.14*b

  print("Floor Divide2:\n", np.floor_divide(c, b), np.floor_divide(b, c)) #返回整数结果

  print( "/ operator:\n", a/b, b/a) # "/"运算符相当于调用 divide 函数

  print( "// operator:\n", a//b, b//a) #运算符//对应于floor_divide 函数

  print( "// operator2:\n", c//b, b//c)

  运行结果:

  

Divide:
[2. 3. 1.66666667] [0.5 0.33333333 0.6 ]
True Divide:
[2. 3. 1.66666667] [0.5 0.33333333 0.6 ]
Floor Divide:
[2 3 1] [0 0 0]
Floor Divide2:
[3. 3. 3.] [0. 0. 0.]
/ operator:
[2. 3. 1.66666667] [0.5 0.33333333 0.6 ]
// operator:
[2 3 1] [0 0 0]
// operator2:
[3. 3. 3.] [0. 0. 0.]

  

  2、模运算

  计算模数或者余数,可以使用NumPy中的 mod 、 remainder 和 fmod 函数。当然,也可以使用 % 运算符。这些函数的主要差异在于处理负数的方式。

  

a = np.arange(-4, 4)

  print(a:,a)

  print ("Remainder", np.remainder(a, 2)) # remainder 函数逐个返回两个数组中元素相除后的余数

  print ("Mod", np.mod(a, 2)) # mod 函数与 remainder 函数的功能完全一致

  print ("% operator", a % 2) # % 操作符仅仅是 remainder 函数的简写

  print ("Fmod", np.fmod(a, 2))# fmod 函数处理负数的方式与 remainder 、 mod 和 % 不同

  运行结果:

  

a: [-4 -3 -2 -1 0 1 2 3]
Remainder [0 1 0 1 0 1 0 1]
Mod [0 1 0 1 0 1 0 1]
% operator [0 1 0 1 0 1 0 1]
Fmod [ 0 -1 0 -1 0 1 0 1]

  

  实际代码运行如下:

  

  以上就是详解Python NumPy中矩阵和通用函数的使用的详细内容,更多关于NumPy矩阵 通用函数的资料请关注盛行IT软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • python 中文unicode编码,python输出字符的unicode
  • python 中文unicode编码,python输出字符的unicode,Unicode和Python的中文处理
  • python输出两个数之间的整数,python编写程序,要求输入两个整数,求两数之和后输出
  • 字母在python中怎么表示,用python输出字母金字塔
  • python输出n×n的方格矩阵,python 输入矩阵
  • python自动换行快捷键,python输出自动换行怎么设置
  • python求两个给定正整数的最大公约数和最小公倍数,python输出最大公约数和最小公倍数
  • 如何用python输出九九乘法表,怎么用python打印九九乘法表
  • python100以内的素数之和是多少,python输出1000以内的素数以及这些素数之和
  • python输出清屏代码,python终端清屏命令
  • python输出fibonacci数列的前30项,编程求fibonacci数列前20项
  • 输出一个n阶的方阵python,python输出1到100的奇数和偶数
  • Python输出字符串长度,python获取字符串的长度
  • python变量名在引用前必须赋值,python输出语句中引用变量
  • 用python输出1000以内所有的质数,python中输出100-200的质数
  • 留言与评论(共有 条评论)
       
    验证码: