欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

numpy創(chuàng)建單位矩陣和對角矩陣的實例

 更新時間:2019年11月29日 09:35:23   投稿:jingxian  
今天小編就為大家分享一篇numpy創(chuàng)建單位矩陣和對角矩陣的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

在學習linear regression時經(jīng)常處理的數(shù)據(jù)一般多是矩陣或者n維向量的數(shù)據(jù)形式,所以必須對矩陣有一定的認識基礎。

numpy中創(chuàng)建單位矩陣借助identity()函數(shù)。更為準確的說,此函數(shù)創(chuàng)建的是一個n*n的單位數(shù)組,返回值的dtype=array數(shù)據(jù)形式。其中接受的參數(shù)有兩個,第一個是n值大小,第二個為數(shù)據(jù)類型,一般為浮點型。單位數(shù)組的概念與單位矩陣相同,主對角線元素為1,其他元素均為零,等同于單位1。而要想得到單位矩陣,只要用mat()函數(shù)將數(shù)組轉(zhuǎn)換為矩陣即可。

>>> import numpy as np
>>> help(np.identity)
     
Help on function identity in module numpy:

identity(n, dtype=None)
  Return the identity array.
  
  The identity array is a square array with ones on
  the main diagonal.
  
  Parameters
  ----------
  n : int
    Number of rows (and columns) in `n` x `n` output.
  dtype : data-type, optional
    Data-type of the output. Defaults to ``float``.
  
  Returns
  -------
  out : ndarray
    `n` x `n` array with its main diagonal set to one,
    and all other elements 0.
  
  Examples
  --------
  >>> np.identity(3)
  array([[ 1., 0., 0.],
      [ 0., 1., 0.],
      [ 0., 0., 1.]])
>>> np.identity(5)
     
array([[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.]])
>>> A = np.mat(np.identity(5))
     
>>> A
     
matrix([[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.]])


矩陣的運算中還經(jīng)常使用對角陣,numpy中的對角陣用eye()函數(shù)來創(chuàng)建。eye()函數(shù)接受五個參數(shù),返回一個單位數(shù)組。第一個和第二個參數(shù)N,M分別對應表示創(chuàng)建數(shù)組的行數(shù)和列數(shù),當然當你只設定一個值時,就默認了N=M。第三個參數(shù)k是對角線指數(shù),跟diagonal中的offset參數(shù)是一樣的,默認值為0,就是主對角線的方向,上三角方向為正,下三角方向為負,可以取-n到+m的范圍。第四個參數(shù)是dtype,用于指定元素的數(shù)據(jù)類型,第五個參數(shù)是order,用于排序,有‘C'和‘F'兩個參數(shù),默認值為‘C',為行排序,‘F'為列排序。返回值為一個單位數(shù)組。

>>> help(np.eye)
    
Help on function eye in module numpy:

eye(N, M=None, k=0, dtype=<class 'float'>, order='C')
  Return a 2-D array with ones on the diagonal and zeros elsewhere.
  
  Parameters
  ----------
  N : int
   Number of rows in the output.
  M : int, optional
   Number of columns in the output. If None, defaults to `N`.
  k : int, optional
   Index of the diagonal: 0 (the default) refers to the main diagonal,
   a positive value refers to an upper diagonal, and a negative value
   to a lower diagonal.
  dtype : data-type, optional
   Data-type of the returned array.
  order : {'C', 'F'}, optional
    Whether the output should be stored in row-major (C-style) or
    column-major (Fortran-style) order in memory.
  
    .. versionadded:: 1.14.0
  
  Returns
  -------
  I : ndarray of shape (N,M)
   An array where all elements are equal to zero, except for the `k`-th
   diagonal, whose values are equal to one.
  
  See Also
  --------
  identity : (almost) equivalent function
  diag : diagonal 2-D array from a 1-D array specified by the user.
  
  Examples
  --------
  >>> np.eye(2, dtype=int)
  array([[1, 0],
      [0, 1]])
  >>> np.eye(3, k=1)
  array([[ 0., 1., 0.],
      [ 0., 0., 1.],
      [ 0., 0., 0.]])

numpy中的diagonal()方法可以對n*n的數(shù)組和方陣取對角線上的元素,diagonal()接受三個參數(shù)。第一個offset參數(shù)是主對角線的方向,默認值為0是主對角線,上三角方向為正,下三角方向為負,可以取-n到+n的范圍。第二個參數(shù)和第三個參數(shù)是在數(shù)組大于2維時指定一個2維數(shù)組時使用,默認值axis1=0,axis2=1。

>>> help(A.diagonal)
     
Help on built-in function diagonal:

diagonal(...) method of numpy.matrix instance
  a.diagonal(offset=0, axis1=0, axis2=1)
  
  Return specified diagonals. In NumPy 1.9 the returned array is a
  read-only view instead of a copy as in previous NumPy versions. In
  a future version the read-only restriction will be removed.
  
  Refer to :func:`numpy.diagonal` for full documentation.
  
  See Also
  --------
  numpy.diagonal : equivalent function
>>> help(np.diagonal)
     
Help on function diagonal in module numpy:

diagonal(a, offset=0, axis1=0, axis2=1)
  Return specified diagonals.
  
  If `a` is 2-D, returns the diagonal of `a` with the given offset,
  i.e., the collection of elements of the form ``a[i, i+offset]``. If
  `a` has more than two dimensions, then the axes specified by `axis1`
  and `axis2` are used to determine the 2-D sub-array whose diagonal is
  returned. The shape of the resulting array can be determined by
  removing `axis1` and `axis2` and appending an index to the right equal
  to the size of the resulting diagonals.
  
  In versions of NumPy prior to 1.7, this function always returned a new,
  independent array containing a copy of the values in the diagonal.
  
  In NumPy 1.7 and 1.8, it continues to return a copy of the diagonal,
  but depending on this fact is deprecated. Writing to the resulting
  array continues to work as it used to, but a FutureWarning is issued.
  
  Starting in NumPy 1.9 it returns a read-only view on the original array.
  Attempting to write to the resulting array will produce an error.
  
  In some future release, it will return a read/write view and writing to
  the returned array will alter your original array. The returned array
  will have the same type as the input array.
  
  If you don't write to the array returned by this function, then you can
  just ignore all of the above.
  
  If you depend on the current behavior, then we suggest copying the
  returned array explicitly, i.e., use ``np.diagonal(a).copy()`` instead
  of just ``np.diagonal(a)``. This will work with both past and future
  versions of NumPy.
  
  Parameters
  ----------
  a : array_like
    Array from which the diagonals are taken.
  offset : int, optional
    Offset of the diagonal from the main diagonal. Can be positive or
    negative. Defaults to main diagonal (0).
  axis1 : int, optional
    Axis to be used as the first axis of the 2-D sub-arrays from which
    the diagonals should be taken. Defaults to first axis (0).
  axis2 : int, optional
    Axis to be used as the second axis of the 2-D sub-arrays from
    which the diagonals should be taken. Defaults to second axis (1).
  
  Returns
  -------
  array_of_diagonals : ndarray
    If `a` is 2-D, then a 1-D array containing the diagonal and of the
    same type as `a` is returned unless `a` is a `matrix`, in which case
    a 1-D array rather than a (2-D) `matrix` is returned in order to
    maintain backward compatibility.
    
    If ``a.ndim > 2``, then the dimensions specified by `axis1` and `axis2`
    are removed, and a new axis inserted at the end corresponding to the
    diagonal.
  
  Raises
  ------
  ValueError
    If the dimension of `a` is less than 2.
  
  See Also
  --------
  diag : MATLAB work-a-like for 1-D and 2-D arrays.
  diagflat : Create diagonal arrays.
  trace : Sum along diagonals.
  
  Examples
  --------
  >>> a = np.arange(4).reshape(2,2)
  >>> a
  array([[0, 1],
      [2, 3]])
  >>> a.diagonal()
  array([0, 3])
  >>> a.diagonal(1)
  array([1])
  
  A 3-D example:
  
  >>> a = np.arange(8).reshape(2,2,2); a
  array([[[0, 1],
      [2, 3]],
      [[4, 5],
      [6, 7]]])
  >>> a.diagonal(0, # Main diagonals of two arrays created by skipping
  ...      0, # across the outer(left)-most axis last and
  ...      1) # the "middle" (row) axis first.
  array([[0, 6],
      [1, 7]])
  
  The sub-arrays whose main diagonals we just obtained; note that each
  corresponds to fixing the right-most (column) axis, and that the
  diagonals are "packed" in rows.
  
  >>> a[:,:,0] # main diagonal is [0 6]
  array([[0, 2],
      [4, 6]])
  >>> a[:,:,1] # main diagonal is [1 7]
  array([[1, 3],
      [5, 7]])
>>> A = np.random.randint(low=5, high=30, size=(5, 5))
     
>>> A
     
array([[25, 15, 26, 6, 22],
    [27, 14, 22, 16, 21],
    [22, 17, 10, 14, 25],
    [11, 9, 27, 20, 6],
    [24, 19, 19, 26, 14]])
>>> A.diagonal()
     
array([25, 14, 10, 20, 14])
>>> A.diagonal(offset=1)
     
array([15, 22, 14, 6])
>>> A.diagonal(offset=-2)
     
array([22, 9, 19])

以上這篇numpy創(chuàng)建單位矩陣和對角矩陣的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • python3 實現(xiàn)爬取TOP500的音樂信息并存儲到mongoDB數(shù)據(jù)庫中

    python3 實現(xiàn)爬取TOP500的音樂信息并存儲到mongoDB數(shù)據(jù)庫中

    今天小編就為大家分享一篇python3 實現(xiàn)爬取TOP500的音樂信息并存儲到mongoDB數(shù)據(jù)庫中,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 理解Django 中Call Stack機制的小Demo

    理解Django 中Call Stack機制的小Demo

    這篇文章主要介紹了理解Django 中Call Stack 機制的小Demo,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Pyecharts地圖顯示不完成問題解決方案

    Pyecharts地圖顯示不完成問題解決方案

    這篇文章主要介紹了Pyecharts地圖顯示不完成問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • Pygame Time時間控制的具體使用詳解

    Pygame Time時間控制的具體使用詳解

    pygame.time 時間控制模塊,是 Pygame 中使用頻率較高的模塊,其主要功能是管理時間和游戲幀數(shù)率,本文就來詳細的介紹一下,感興趣的可以了解一下
    2021-11-11
  • 用Python分析3天破10億的《我不是藥神》到底神在哪?

    用Python分析3天破10億的《我不是藥神》到底神在哪?

    我不是藥神這部劇真的是很火,三天破10億。接下來腳本之家小編給大家?guī)砹擞肞ython來看3天破10億的《我不是藥神》到底神在哪?感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-07-07
  • 從零學Python之hello world

    從零學Python之hello world

    從今天開始講陸續(xù)發(fā)布一系列python基礎教程,讓新手更快更好的入門。
    2014-05-05
  • python 列表刪除所有指定元素的方法

    python 列表刪除所有指定元素的方法

    下面小編就為大家分享一篇python 列表刪除所有指定元素的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 基于Python實現(xiàn)圖片文字合成工具

    基于Python實現(xiàn)圖片文字合成工具

    這篇文章主要為大家詳細介紹了如何基于Python實現(xiàn)圖片文字合成工具,實現(xiàn)處理圖片文件、在圖片上添加文本等功能,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-10-10
  • python人工智能tensorflow函數(shù)np.random模塊使用

    python人工智能tensorflow函數(shù)np.random模塊使用

    這篇文章主要為大家介紹了python人工智能tensorflow函數(shù)np.random模塊使用方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • python實現(xiàn)凱撒密碼加密解密的示例代碼

    python實現(xiàn)凱撒密碼加密解密的示例代碼

    本文主要介紹了python實現(xiàn)凱撒密碼加密解密的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06

最新評論