一、矩阵相关操作
1、三种构造矩阵的方法
- np.matrix(二维容器, copy=True)
一参为可被解释为矩阵的二维容器,比如二维数组、二维列表;
二参为copy,表示是否将原容器的数据复制一份,若为True则不会影响原容器,若为false则会影响原容器数据 - numpy.mat(可被解释的二维容器)——>这种方法则一定是将数据与元容器共享
- numpy.bmat(‘A B; C D’) ——>块级拼接,这种方法是将多个小的矩阵合成一个大的矩阵
2、常用属性
- T属性:转置运算
- I属性:广义逆矩阵,非方阵也可以算出逆矩阵(两个互逆矩阵相乘等于单位矩阵,类似1;即为A*B=E)
- 两矩阵相乘(举例二维矩阵):
第一行乘第一列之和,第一行乘第二列之和
第二行乘第一列之和,第二行乘第二列之和
3、练习代码
import numpy as np
a = np.array([
[1, 2],
[3, 4]
])
b = np.matrix(a)
c = np.mat(a)
a *= 10
print(b, type(b))
print("-----------------------------")
print(c, type(c))
d = np.mat('11 22; 33 44')
e = np.mat('55 66; 77 88')
print("-----------------------------")
print(d, type(d))
f = np.bmat('d e')
print("-----------------------------")
print(f, type(f))
print("-----------------------------")
print(c.I)
print(c * d)
![矩阵基本操作](https://img-blog.csdnimg.cn/20200809215904232.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1ZpZXdpbmZpbml0ZWx5,size_16,color_FFFFFF,t_70)
二、ufunc统一泛化函数
1、ufunc对象
统一泛化函数,与vectorize类似,只是frompyfunc会在数据后面跟上类型
2、格式
numpy.frompyfunc(标量函数, 函数个数, 返回值个数)
返回一个ufunc泛化函数对象,矢量返回值
3、ufunc对象的方法(需要加一个add)
- numpy.add.reduce():累加数组元素
- numpy.add.accumulate():元素累加过程
- numpy.add.reduceat():分段累加(在指定位置累加)
- numpy.add.outer():求外和,分别给每一个元素加上给定列表中的数据
区分:numpy.outer()是求外积,给每一个元素乘上给定列表中的数据
4、练习代码
import numpy as np
'''
ufunc函数对象的方法
'''
a = np.arange(1, 7)
print(a)
b = np.add.reduce(a)
print(b)
c = np.add.accumulate(a)
print(c)
print("-----------------------------------")
d = np.add.reduceat(a, [0, 2, 4])
print(d)
e = np.add.outer([10, 20, 30], a)
print(e)
f = np.outer([10, 20, 30], a)
print(f)
![ufunc对象](https://img-blog.csdnimg.cn/20200809220258714.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1ZpZXdpbmZpbml0ZWx5,size_16,color_FFFFFF,t_70)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)