Python之Numpy的基礎及進階函數(圖文)

  同樣,咱的計算機仍是得先擁有Python,而且安裝了Numpy庫。有疑問的話能夠看這裏呦~~~~html

 

下面開講:

  NumPy的主要對象是齊次多維數組。它是一個元素表(一般是數字),而且都是相同類型,由正整數的元組索引。數組

  其餘暫且略過,咱主要說一些能夠聽懂的而且有實際效用的。
dom

 

  首先,咱們得建立有一個ndarry對象,簡單地介紹其中三種方法吧:ide

      • a=np.array([1,2,3])

       

      • data=[[1,2,3],[4,5,6]]
        a=np.array(data)

        

      • a=np.arange(15).reshape(3,5)

       

在這裏咱們就用第三個做爲例子接着往下講哈(我就不用再建立了哈哈)

  ndarray對象的重要的屬性以下:函數

    • ndarray.ndim:

      輸出ndarray的維度(軸數,也有人叫它等級,在Python世界中,維度的數量被稱爲等級),這裏的軸也叫座標軸。spa

      

        這兩種寫法都是能夠的,親試如圖,下面的其餘函數也是同樣的。3d

 

      例如,array([1,2,1])是一個等級爲1的數組,由於它具備一個座標軸,該軸的長度爲3。code

      在上面的示例中,該數組的排名爲2(它是2維的)。第一維(軸)的長度爲3,第二維的長度爲5。orm

 

    • ndarray.shape:

      輸出數組的尺寸,即(n,m)。htm

      

    • ndarray.size:

      數組元素的總數,即 n * m。

      

    • ndarray.dtype:

      數組中元素的數據類型,可進行轉換。(這個通常默認float64 和 int32,大家能夠本身多試試)

      

    • ndarray.itemsize:

      數組中每一個元素的字節大小。(例子中則爲 int 32/8 = 4,至關於ndarray.dtype.itemsize

      

    • ndarray.data:

      該緩衝區包含數組的實際元素。(這個咱們通常不用,咱們都是用索引的QAQ)

      

 

  還有好多,我就不一一截圖了,懶。。。。。。

  • np.zeros(10)    #長度爲10的0數組
  • np.zeros((3,6))    #建立3行6列的0數組(注意有兩個括號)
  • np.ones(5)
  • np.ones((3,4))
  • np.arange(10)
  • np.eye(3)    # 3*3單位矩陣
  • np.identity(3)    # 3*3單位矩陣
  • np.zeros_like(a)    #建立與a相同行、列的全0矩陣
  • np.ones_like(a)    #建立與a相同行、列的全1矩陣

 

  索引和切片類

  • a1=a[0:1]    ##這個切片的大有學問了,寫的話大概得另起一篇了,有空再說
  • a[0:1]=1    ##a變化後,a1的值也隨之變化
  • a1[0:1]=2    #a1變化後,a的值也隨之變化
  • a1=a[0:1].copy()    #徹底拷貝,值變化不影響a (和上面對比一下你就清楚了)

 

  計算類

  • a*a    #每一個元素平方(這個強!!!挺好用的。)
  • a*5    #每一個元素乘以5
  • a.mean()    #數據均值
  • a.sum()    #數組和
  • a.sum(axis=0)    #按列求和
  • a.sum(axis=1)    #按行求和
  • a.sort()    #對a進行排序(這個也是好東西啊~~~)
  • a.sort(1)    #0按行排序,1按列排序
  • np.sort(a,0)    #a按行排序(自己不發生變化!!!!!!)
  • x.dot(y)    ##矩陣x與y相乘

 

  • np.in1d(a,[2,3,6])    #value中的每個值是否在[2,3,6]中(若是是,該值返回true,不然返回false.)
  • np.in1d([2,3,6],a)
  • np.in1d(x,y)
  • np.intersect1d(x,y)    #返回x和y中的交集,並返回有序結構
  • np.union1d(x,y)    #計算x,y的並集,並返回有序結構
  • np.setdiff1d(x,y)    #集合的差,即在x中且不在y中
  • samples=np.random.normal(size=(4,4))    #產生4維正態分佈矩陣
  • from numpy.linalg import *    #計算與矩陣相關,行列式,矩陣的逆等
  • np.linalg.det(samples)    #矩陣行列式
  • np.linalg.inv(samples)    #矩陣求逆
  • np.diag(samples)    #返回矩陣對角線元素
  • np.linalg.eig(samples)    #返回矩陣特徵值和特徵向量

 

  • import timeit    #導入計算時間的模塊
  • np.save('some_a',a)    #保存文件
  • np.load("some_a.py")    #讀取磁盤保存數據
  • a=np.loadtxt("code_public.txt",delimiter=',')    #讀取文本數據
  • arr=np.loadtxt("d:\code\arr.txt",delimiter=',')    #讀取d盤數據

 

行吧,時間也差很少了,我都寫累了,相信你也看累了,是時候去 stzb 看看了。

相關文章
相關標籤/搜索