我们 知道,矩阵在python里面用的不少,所以记载下关于矩阵的操作
numpy.zeros():可以用来构造全零矩阵
- >>> zeros(3)
- array([ 0., 0., 0.])
- >>> zeros((3,3))
- array([[ 0., 0., 0.],
- [ 0., 0., 0.],
- [ 0., 0., 0.]])
numpy.ones(): 可以用来构造全一矩阵
- >>> ones((3,3))
- array([[ 1., 1., 1.],
- [ 1., 1., 1.],
- [ 1., 1., 1.]])
numpy.eyes(): 可以用来构造单位矩阵
- >>> eye(3)
- array([[ 1., 0., 0.],
- [ 0., 1., 0.],
- [ 0., 0., 1.]])
shape 用法 配合使用
shape函数是numpy.core.fromnumeric中的函数,它的功能是查看矩阵或者数组的维数。
举例说明:
建立一个3×3的单位矩阵e, e.shape为(3,3),表示3行3列,第一维的长度为3,第二维的长度也为3
- >>> e = eye(3)
- >>> e
- array([[ 1., 0., 0.],
- [ 0., 1., 0.],
- [ 0., 0., 1.]])
- >>> e.shape
- (3, 3)
- >>> e = eye(3)
- >>> e
- array([[ 1., 0., 0.],
- [ 0., 1., 0.],
- [ 0., 0., 1.]])
- >>> e.shape
- (3, 3)
- >>> b =array([1,2,3,4])
- >>> b.shape
- (4,)
- #可以简写
- >>> shape([1,2,3,4])
- (4,)
- >>>
- >>> b =array([1,2,3,4])
- >>> b.shape
- (4,)
- #可以简写
- >>> shape([1,2,3,4])
- (4,)
- >>>
建立一个4×2的矩阵c, c.shape[0] 为第一维的长度,c.shape[1] 为第二维的长度。
- >>> c = array([[1,1],[1,2],[1,3],[1,4]])
- >>> c.shape
- (4, 2)
- >>> c.shape[0]
- 4
- >>> c.shape[1]
- 2
- >>> c = array([[1,1],[1,2],[1,3],[1,4]])
- >>> c.shape
- (4, 2)
- >>> c.shape[0]
- 4
- >>> c.shape[1]
- 2
- >>> shape(3)
- ()
- >>> shape(3)
- ()
矩阵的乘法:
Python 中的几种矩阵乘法 np.dot, np.multiply, *
使用array时,运算符 * 用于计算数量积(点乘),函数 dot() 用于计算矢量积(叉乘).
使用matrix时,运算符 * 用于计算矢量积,函数 multiply() 用于计算数量积.
下面是使用array时:
1. 同线性代数中矩阵乘法的定义: np.dot()
np.dot(A, B):对于二维矩阵,计算真正意义上的矩阵乘积,同线性代数中矩阵乘法的定义。对于一维矩阵,计算两者的内积。
2. 对应元素相乘 element-wise product: np.multiply(), 或 *
在Python中,实现对应元素相乘,有2种方式,一个是np.multiply(),另外一个是*。这两种的效果是一样的。
请看代码:
1 #!/usr/bin/env python3 2 # -*- coding: utf-8 3 4 import numpy as np 5 6 X = np.array([[1,2],[3,4]]) 7 Y = np.array([[5,6],[7,8]]) 8 9 a1 = np.dot(X,Y) 10 print('np.dot(X,Y)= ',a1) 11 12 a2 = np.multiply(X,Y) 13 print('np.multiply(X,Y)= ',a2)
运行结果:
1
2
3
4
5
6
7
8
9
|
np.dot(X,Y) = [[ 19 22 ] [ 43 50 ]] np.multiply(X,Y) = [[ 5 12 ] [ 21 32 ]] X * Y = [[ 5 12 ] [ 21 32 ]] |
转载自:http://blog.csdn.net/xingchengmeng/article/details/64442935
http://blog.csdn.net/u010758410/article/details/71554224
http://www.cnblogs.com/baibaibaiyou/p/7892437.html