您的位置:首页 > 文旅 > 美景 > Numpy 单位矩阵创建 eye()函数详解

Numpy 单位矩阵创建 eye()函数详解

2024/10/7 4:28:34 来源:https://blog.csdn.net/bbaaa123/article/details/142268992  浏览:    关键词:Numpy 单位矩阵创建 eye()函数详解

eye()函数的参数设置如下

def eye(N, M=None, k=0, dtype=float, order='C', *, like=None):

N表示行数,M表示列数,k表示偏移,dtype为元素数据类型,order为存储顺序,like表示生成的为与like参数相同类型的数组(这个参数不常用,这里不做演示)

创建3行3列单位矩阵

import numpy as npdata1 = np.eye(3)
print(data1)# [[1. 0. 0.]
#  [0. 1. 0.]
#  [0. 0. 1.]]

一般来说单位矩阵为方阵,所以一般创建标准单位矩阵只需设置行或列数其一即可,但是这里设置行和列两个参数的原因是可以设置类单位矩阵(也就是即使矩阵为非方阵,对角线也默认从左上角开始)

import numpy as npdata1 = np.eye(N = 3,M = 4)
print(data1)# [[1. 0. 0. 0.]
#  [0. 1. 0. 0.]
#  [0. 0. 1. 0.]]

k参数的作用为空值对角线或类对角线的上移或下移,若k>0则上移,反之则下移,数值为移动的单位数

import numpy as npdata1 = np.eye(N = 3,M = 4,k=1)
data2 = np.eye(N = 5,M=4,k=-2)
print(data1,end='\n\n')
print(data2)# [[0. 1. 0. 0.]
#  [0. 0. 1. 0.]
#  [0. 0. 0. 1.]]
# 
# [[0. 0. 0. 0.]
#  [0. 0. 0. 0.]
#  [1. 0. 0. 0.]
#  [0. 1. 0. 0.]
#  [0. 0. 1. 0.]]

order参数为存储顺序,默认为‘C’,也就是按行顺序存储,也可以设置为‘F’,就是按列顺序存储

下面展示内存中的存储状态

import numpy as npdata1 = np.eye(N = 3,M = 4,k=1,order='F')
data2 = np.eye(N = 3,M = 4,k=1,order='C')print(data1.reshape(-1,order='F'))
print(data2.reshape(-1))
# [0. 0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 1.]
# [0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0. 1.]

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com