矩阵(Matrix)和数组(Array)的区别主要有如下两点:数组
代码展现dom
1.矩阵的建立函数
class numpy.mat(data, dtype=None)
(注释:Unlike matrix, asmatrix does not make a copy if the input is already a matrix or an ndarray. Equivalent to matrix(data, copy=False).这句话的含义也就是说,当传入的参数为一个矩阵或者ndarray的数组时候,返回值是和传入参数相同的引用,也就是当传入参数发生改变时候,返回值也会相应的改变。至关于numpy.matrix(data, copy=False))ui
[[1 2] [3 4]] e的类型: <class 'numpy.matrix'> --------------- [[1 2] [3 4]] e1的类型: <class 'numpy.matrix'> --------------- 改变e中的值,分别打印e和e1 [[0 2] [3 4]] [[0 2] [3 4]] ---------------
class numpy.matrix(data, dtype=None, copy=True)
(注释:Returns a matrix from an array-like object, or from a string of data. A matrix is a specialized 2-D array that retains its 2-D nature through operations. It has certain special operators, such as *
(matrix multiplication) and **
(matrix power).)spa
import numpy as np e = np.array([[1, 2], [3, 4]]) # e = '1 2;3 4' # 经过字符串建立矩阵 e1 = np.matrix(e) # 传入的参数为矩阵时 print(e1) print('e1的类型:', type(e1)) print('---'*5) print('改变e中的值,分别打印e和e1') e[0][0] = 0 print(e) print(e1) print('---'*5)
[[1 2] [3 4]] e1的类型: <class 'numpy.matrix'> --------------- 改变e中的值,分别打印e和e1 [[0 2] [3 4]] [[1 2] [3 4]] ---------------
2.数组的建立code
import numpy as np e = [[1, 2], [3, 4]] e1 = np.array(e) print(e) n = np.arange(0, 30, 2) # 从0开始到30(不包括30),步长为2 n = n.reshape(3, 5) print(n) o = np.linspace(0, 4, 9) o.resize(3, 3) print(o) a = np.ones((3, 2)) print(a) b = np.zeros((2, 3)) print(b) c = np.eye(3) # 3维单位矩阵 print(c) y = np.array([4, 5, 6]) d = np.diag(y) # 以y为主对角线建立矩阵 print(d) e = np.random.randint(0, 10, (4, 3)) print(e)
--------------- [[1, 2], [3, 4]] [[ 0 2 4 6 8] [10 12 14 16 18] [20 22 24 26 28]]
[[0. 0.5 1. ] [1.5 2. 2.5] [3. 3.5 4. ]]
[[1. 1.] [1. 1.] [1. 1.]]
[[0. 0. 0.] [0. 0. 0.]]
[[1. 0. 0.] [0. 1. 0.] [0. 0. 1.]]
[[4 0 0] [0 5 0] [0 0 6]]
[[3 0 2] [1 5 1] [9 4 7] [5 8 9]]
3.矩阵和数组的数学运算blog
矩阵的乘法和加法和线性代数的矩阵加法和乘法一致,运算符号也同样用*,**表示平方,例如e**2 =e*e。ip
数组的乘法和加法为相应位置的数据乘法和加法。ci