日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python生成單位陣或對角陣的三種方式小結_python

作者:小Aer ? 更新時間: 2022-07-04 編程語言

python生成單位陣或對角陣

前提:

import numpy as np

1.identity

np.identity(4)
array([[ 1., 0., 0., 0.],
       [ 0., 1., 0., 0.],
       [ 0., 0., 1., 0.],
       [ 0., 0., 0., 1.]])

2.eye

np.eye(4)
array([[1., 0., 0., 0.],
       [0., 1., 0., 0.],
       [0., 0., 1., 0.],
       [0., 0., 0., 1.]])

3.diag(可以指定對角元素)

np.diag([1] * 4)
Out[1]:?
array([[1, 0, 0, 0],
? ? ? ?[0, 1, 0, 0],
? ? ? ?[0, 0, 1, 0],
? ? ? ?[0, 0, 0, 1]])
np.diag([2] * 4)
Out[2]:?
array([[2, 0, 0, 0],
? ? ? ?[0, 2, 0, 0],
? ? ? ?[0, 0, 2, 0],
? ? ? ?[0, 0, 0, 2]])

有趣的地方是前兩種方法元素都是浮點數,最后一種是整數,使用的時候注意區分就好

python創建對角陣的np.eye()函數

最近博主在研究kalman濾波,里面初始矩陣定義需要對角陣,于是查了一些資料,發現numpy中有一個eye函數可以達到這樣的目的

np.eye(N,M=None,k=0,dtype=<class 'float'>,order='C)
  • N表示輸出的行數;
  • M表示輸出的列數,不給默認等于N;
  • K默認等于0,表示主對角線,負數代表低對角,正數代表高對角;
  • dtype表示輸出數據的類型;
  • order表示輸出的數組的形式是按照C語言的行優先’C’,還是按照Fortran形式的列優先‘F’存儲在內存中。

看下面兩個例子就明白用法啦

    a = np.eye(4)
    print(type(a))
    print(a)
    a = np.mat(a)
    print(type(a))
    print(a)
    a = a.I
    print(type(a))
    print(a)
>>><class 'numpy.ndarray'>
[[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]]
<class 'numpy.matrix'>
[[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]]
<class 'numpy.matrix'>
[[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]]
    a = np.eye(4,k=1)
    print(type(a))
    print(a)
    a = np.mat(a)
    print(type(a))
    print(a)
    a = a.T
    print(type(a))
    print(a)
>>><class 'numpy.ndarray'>
[[0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]
 [0. 0. 0. 0.]]
<class 'numpy.matrix'>
[[0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]
 [0. 0. 0. 0.]]
<class 'numpy.matrix'>
[[0. 0. 0. 0.]
 [1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]]

原文鏈接:https://blog.csdn.net/qq_41542989/article/details/111587600

欄目分類
最近更新