Python之Numpy的基礎及進階函數,pythonnumpy

來源:互聯網
上載者:User

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

  一樣,咱的電腦還是得先擁有Python,並且安裝了Numpy庫。有疑問的話可以看這裡呦~~~~

 

下面開講:

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

  其他暫且略過,咱主要說一些可以聽懂的並且有實際效用的。

 

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

      • 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世界中,維度數量被稱為等級),這裡的軸也叫座標軸。

      

        這兩種寫法都是可以的,親試,下面的其他函數也是一樣的。

 

      例如,array([1,2,1])是一個等級為1的數組,因為它具有一個座標軸,該軸的長度為3。

      在上面的樣本中,該數組的排名為2(它是2維的)。第一維(軸)的長度為3,第二維的長度為5。

 

    • ndarray.shape:

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

      

    • 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 看看了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.