21-NumPy Matrix矩阵库

NumPy Matrix矩阵库

NumPy 提供了一个 矩阵库模块numpy.matlib,该模块中的函数返回的是一个 matrix 对象,而非 ndarray 对象。矩阵由 m 行 n 列(m*n)元素排列而成,矩阵中的元素可以是数字、符号或数学公式等。

matlib.empty()

matlib.empty() 返回一个空矩阵,所以它的创建速度非常快。

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

该函数的参数说明如下:

  • shape:以元组的形式指定矩阵的形状。
  • dtype:表示矩阵的数据类型。
  • order:有两种选择,C(行序优先) 或者 F(列序优先)。

示例如下:

import numpy.matlib
import numpy as np
#矩阵中会填充无意义的随机值
print(np.matlib.empty((2,2)))

输出结果:

[[5.e-324 4.e-323]
 [4.e-323 4.e-323]]

numpy.matlib.zeros()

numpy.matlib.zeros() 创建一个以 0 填充的矩阵,示例如下:

import numpy.matlib
import numpy as np
print(np.matlib.zeros((2,2)))

输出结果:

[[0. 0.]
 [0. 0.]]

numpy.matlib.ones()

numpy.matlib.ones() 创建一个以 1 填充的矩阵。

import numpy.matlib
import numpy as np
print(np.matlib.ones((2,2)))

输出结果:

[[ 1.  1.]
[ 1.  1.]] 

numpy.matlib.eye()

numpy.matlib.eye() 返回一个对角线元素为 1,而其他元素为 0 的矩阵 。

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

  • n:返回矩阵的行数;
  • M:返回矩阵的列数,默认为 n;
  • k:对角线的索引;
  • 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()

该函数返回一个给定大小的单位矩阵,矩阵的对角线元素为 1,而其他元素均为 0。

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()

numpy.matlib.rand() 创建一个以随机数填充,并给定维度的矩阵。示例如下:

import numpy.matlib
import numpy as np
print (np.matlib.rand(3,3))

示例如下:

[[0.23966718 0.16147628 0.14162   ]
[0.28379085 0.59934741 0.62985825]
[0.99527238 0.11137883 0.41105367]]

这里需要注意,因为 matrix 只能表示二维数据,而 ndarray 也可以是二维数组,所以两者可以互相转换。示例如下:

#创建矩阵i
import numpy.matlib
import numpy as np 
i = np.matrix('1,2;3,4') 
print (i)

输出结果:

[[1  2]
[3  4]]

实现 matrix 与 ndarray 之间的转换,如下所示:

import numpy.matlib
import numpy as np 
j = np.asarray(i) 
print (j)
k = np.asmatrix (j)
print (k)

输出结果:

ndarray:
[[1  2]
[3  4]]
matrix:
[[1  2]
[3  4]] 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值