NumPy - 矩阵库

NumPy 包包含一个 Matrix库numpy.matlib。此模块的函数返回矩阵而不是返回ndarray对象。

matlib.empty()

matlib.empty()函数返回一个新的矩阵,而不初始化元素。 该函数接受以下参数。

	numpy.matlib.empty(shape, dtype, order)

其中:
产生的是随机数
序号 参数及描述

  1. shape 定义新矩阵形状的整数或整数元组

  2. Dtype 可选,输出的数据类型

  3. order C 或者 F

    import numpy.matlib
    import numpy as np
    
    print(np.matlib.empty((2,2)))
    
    '''
    [[3.33774320e-307 1.61323712e-307]
     [1.69120552e-306 2.14325072e-312]]
    '''
    
numpy.matlib.zeros()

此函数返回以零填充的矩阵。

	import numpy.matlib
	import numpy as np
	
	print(np.matlib.zeros((2,2)))
	
	'''
	[[0. 0.]
	 [0. 0.]]
	'''
numpy.matlib.ones()

此函数返回以1填充的矩阵。

	import numpy.matlib
	import numpy as np
	
	print(np.matlib.ones((2,2)))
	
	'''
	[[1. 1.]
	 [1. 1.]]
	'''
numpy.matlib.eye()

这个函数返回一个矩阵,对角线元素为 1,其他位置为零。 该函数接受以下参数。(对角矩阵

numpy.matlib.eye(n, M,k, dtype)

序号 参数及描述

  1. n 返回矩阵的行数

  2. M 返回矩阵的列数,默认为n

  3. k 对角线的索引,即从哪个0,1…开始索引

  4. dtype 输出的数据类型

    import numpy.matlib 
    import numpy as np 
    print (np.matlib.eye(n =  3, M =  4, k =  0, dtype =  float))
    
    
    '''
    [[1. 0. 0. 0.]
     [0. 1. 0. 0.]
     [0. 0. 1. 0.]]
    '''
    
numpy.matlib.identity()

**单位矩阵:**n行n列,且对角线上为1

	import numpy.matlib 
	import numpy as np 
	print (np.matlib.identity(5, dtype =  float))
	
	
	'''
	[[1. 0. 0. 0. 0.]
	 [0. 1. 0. 0. 0.]
	 [0. 0. 1. 0. 0.]
	 [0. 0. 0. 1. 0.]
	 [0. 0. 0. 0. 1.]]
	'''
numpy.matlib.rand()

函数返回给定大小的填充随机值的矩阵。

	import numpy.matlib 
	import numpy as np 
	print (np.matlib.rand(3,3))
	
	
	'''
	[[0.67573664 0.28551645 0.58846997]
	 [0.17548323 0.45410408 0.62703266]
	 [0.78610571 0.42453855 0.98402345]]
	'''

注意,矩阵总是二维的,而ndarray是一个 n 维数组。 两个对象都是可互换的。

numpy.dot()

对应二维数组(就是矩阵)就相当于矩阵乘法。对于一维数组,就相当于对应位置数相乘,然后相加。

	import numpy.matlib 
	import numpy as np 
	
	a = np.array([1, 2, 3])
	b = np.array([4, 5, 6])
	print(np.dot(a, b))  #对于一维而言
	
	a = np.array([[1, 2], [3, 4]])
	b = np.array([[1, 2], [3, 4]])
	print(np.dot(a, b))  #对于二维来说
	
	
	'''
	32
	[[ 7 10]
	 [15 22]]
	'''
numpy.vdot()

点积,对应位置数相乘,所有乘积后的数相加。

	import numpy as np 
	a = np.array([[1,2],[3,4]]) 
	b = np.array([[11,12],[13,14]]) 
	print np.vdot(a,b)

结果:111 + 212 + 313 + 414 = 130。

numpy.inner()

此函数返回一维数组的向量内积。 对于更高的维度,它返回最后一个轴上的和的乘积。上面一个不止对一维。和上一个差不多。

numpy.linalg.det()

计算矩阵对应行列式的值:

		import numpy.matlib 
		import numpy as np 
		
		 
		import numpy as np
		a = np.array([[1,2], [3,4]]) 
		
		print (int(np.linalg.det(a)))
		
		'''
		-2
		'''
numpy.linalg.solve()

numpy.linalg.solve()函数给出了矩阵形式的线性方程的解。

考虑以下线性方程:

x + y + z = 6
 
2y + 5z = -4
 
2x + 5y - z = 27

可以使用矩阵表示为:

如果矩阵成为A、X和B,方程变为:

AX = B

X = A^(-1)B

numpy.linalg.inv()

计算矩阵的逆矩阵:A^-1
逆矩阵和原矩阵乘积是单位矩阵。

import numpy.matlib 
import numpy as np 

 
import numpy as np
a = np.array([[1,2], [3,4]]) 

print (np.linalg.inv(a))



'''
[[-2.   1. ]
 [ 1.5 -0.5]]
'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值