1. 程式人生 > >Python numpy模組常用方法

Python numpy模組常用方法

Python numpy模組常用方法

文章轉載自:https://www.zybuluo.com/Frankchen/note/338294

python


建立矩陣(採用ndarray物件)

對於python中的numpy模組,一般用其提供的ndarray物件。 
建立一個ndarray物件很簡單,只要將一個list作為引數即可。 
例如


 
  1. import numpy as np #引入numpy庫
  2. #建立一維的narray物件
  3. a = np.array([1,2,3,4,5])
  4. #建立二維的narray物件
  5. a2 = np.array
    ([[1,2,3,4,5],[6,7,8,9,10]])
  6. #建立多維物件以其類推

獲取矩陣行數列數(二維情況)

習慣了採用matlab進行數模的程式設計,要對矩陣進行遍歷時,一般先獲取矩陣的行數和列數。要獲取narray物件的各維的長度,可以通過narray物件的shape屬性


 
  1. import numpy as np
  2. a = np.array([[1,2,3,4,5],[6,7,8,9,10]])
  3. print(a.shape) #結果返回一個tuple元組 (2L, 5L)
  4. print(a.shape[0]) #獲得行數,返回 2
  5. print
    (a.shape[1]) #獲得列數,返回 5

矩陣的擷取

按行列擷取

矩陣的擷取和list相同,可以通過[](方括號)來擷取


 
  1. import numpy as np
  2. a = np.array([[1,2,3,4,5],[6,7,8,9,10]])
  3. print(a[0:1]) #擷取第一行,返回 [[1 2 3 4 5]]
  4. print(a[1,2:5]) #擷取第二行,第三、四列,返回 [8 9]
  5. print(a[1,:]) #擷取第二行,返回 [ 6 7 8 9 10]

按條件擷取

按條件擷取其實是在[](方括號)中傳入自身的布林語句 
例如


 
  1. import numpy as np
  2. a = np.array([[1,2,3,4,5],[6,7,8,9,10]])
  3. b = a[a>6] # 擷取矩陣a中大於6的元素,範圍的是一維陣列
  4. print(b) # 返回 [ 7 8 9 10]
  5. # 其實布林語句首先生成一個布林矩陣,將布林矩陣傳入[](方括號)實現擷取
  6. print(a>6)
  7. # 返回
  8. [[False False False False False]
  9. [False True True True True]]

按條件擷取應用較多的是對矩陣中滿足一定條件的元素變成特定的值。 
例如將矩陣中大於6的元素變成0。


 
  1. import numpy as np
  2. a = np.array([[1,2,3,4,5],[6,7,8,9,10]])
  3. print(a)
  4. #開始矩陣為
  5. [[ 1 2 3 4 5]
  6. [ 6 7 8 9 10]]
  7. a[a>6] = 0
  8. print(a)
  9. #大於6清零後矩陣為
  10. [[1 2 3 4 5]
  11. [6 0 0 0 0]]

矩陣的合併

矩陣的合併可以通過numpy中的hstack方法和vstack方法實現


 
  1. import numpy as np
  2. a1 = np.array([[1,2],[3,4]])
  3. a2 = np.array([[5,6],[7,8]])
  4. #!注意 引數傳入時要以列表list或元組tuple的形式傳入
  5. print(np.hstack([a1,a2]))
  6. #橫向合併,返回結果如下
  7. [[1 2 5 6]
  8. [3 4 7 8]]
  9. print(np.vstack((a1,a2)))
  10. #縱向合併,返回結果如下
  11. [[1 2]
  12. [3 4]
  13. [5 6]
  14. [7 8]]

矩陣的合併也可以通過concatenatef方法。 
np.concatenate( (a1,a2), axis=0 ) 等價於 np.vstack( (a1,a2) )

np.concatenate( (a1,a2), axis=1 ) 等價於 np.hstack( (a1,a2) )

通過函式建立矩陣

numpy模組中自帶了一些建立ndarray物件的函式,可以很方便的建立常用的或有規律的矩陣。


 
  1. import numpy as np
  2. a = np.arange(10) # 預設從0開始到10(不包括10),步長為1
  3. print(a) # 返回 [0 1 2 3 4 5 6 7 8 9]
  4. a1 = np.arange(5,10) # 從5開始到10(不包括10),步長為1
  5. print(a1) # 返回 [5 6 7 8 9]
  6. a2 = np.arange(5,20,2) # 從5開始到20(不包括20),步長為2
  7. print(a2) # 返回 [ 5 7 9 11 13 15 17 19]

linspace

linspace()和matlab的linspace很類似,用於建立指定數量等間隔的序列,實際生成一個等差數列。


 
  1. import numpy as np
  2. a = np.linspace(0,10,7) # 生成首位是0,末位是10,含7個數的等差數列
  3. print(a)
  4. # 結果
  5. [ 0. 1.66666667 3.33333333 5. 6.66666667 8.33333333 10. ]

logspace

linspace用於生成等差數列,而logspace用於生成等比數列。 
下面的例子用於生成首位是100,末位是102,含5個數的等比數列。

            
           

相關推薦

Python numpy模組常用方法

Python numpy模組常用方法 文章轉載自:https://www.zybuluo.com/Frankchen/note/338294 python 建立矩陣(採用ndarray物件) 對於python中的numpy模組,一般用其提供的ndarray物件。 建立一個n

python os 模組常用方法

常見函式列表 os.sep:取代作業系統特定的路徑分隔符 os.name:指示你正在使用的工作平臺。比如對於Windows,它是’nt’,而對於Linux/Unix使用者,它是’posix’。 os.getcwd:得到當前工作目錄,即當前python指令碼工作的目錄路徑。 os.ge

python-shutil模組常用方法(42)

>>> import shutil >>> with open('/etc/passwd','rb') as sfobj: ... with open('/tmp/mima.txt','wb') as dfobj: ...

python-nmap模組常用方法說明

一、模組常用方法說明  本節介紹python-nmap模組的兩個常用類,一個為PortScanner()類,實現一個nmap工具的埠掃描功能封裝;另一個為PortScannerHostDict()類,實現儲存與訪問主機的掃描結果。  PortScanner()類常用方法  scan方法 s

python re模組常用方法總結

res = re.match(pattern, string, flags=0) #字串的開頭是否能匹配正則表示式。返回_sre.SRE_Match物件,如果 #不能匹配返回None。 # 如果匹配的話

NumPy 模組 常用方法 學習

import numpy as np 1. 多維陣列:型別 numpy.ndarray 方法:numpy.array(tuple[,dtype]):  # tuple 可以是由 tuple 組成的;dtype 可以取 numpy.int32/.int16/.floa

numpy 模組常用方法

Numpy是科學計算庫,是一個強大的N維陣列物件ndarray,是廣播功能函式。其整合C/C++.fortran程式碼的工具 ,更是Scipy、Pandas等的基礎 .ndim :維度 .shape :各維度的尺度 (2,5) .size :元素的個數 10 .dtype :元

Python:os 模組常用方法簡介

os.getcwd()# 返回當前工作目錄 os.path.abspath(path)# 返回 path 的絕對路徑# os.path.abspath('.') 相當於 os.getcwd() os.path.split(path)# 返回 tuple(頭部, 尾部),尾部是最終斜線後的所有內容# 一般用

.os.path.abspath(path)、os.path.dirname(path)、os.path.basename(path)等等關於python os.path模組常用方法詳解

裡面包含.os.path.abspath(path)、os.path.split(path)、os.path.dirname(path)、os.path.basename(path)、os.path.commonprefix(list)、os.path.exists(path)、os.path.is

python os.path模組常用方法詳解

1.os.path.abspath(path) 返回path規範化的絕對路徑。 >>> os.path.abspath('test.csv') 'C:\\Python25\\test.csv' >>> os.path

python基礎】os.path模組常用方法詳解

os.path模組 主要用於檔案的屬性獲取,在程式設計中經常用到,以下是該模組的幾種常用方法。 更多的方法可以去檢視官方文件:http://docs.python.org/library/os.path.html 參考:https://www.cnblogs.com/wuxie1989/p/562343

python爬蟲系列(1.1-urllib模組常用方法的介紹)

一、關於urllib中常用方法的介紹 1、urlopen網路請求 urlopen方法是網路請求的方法,預設是get請求,如果傳遞了data是post請求 from urllib import r

python中的sys模組常用方法

sys.argv  命令列引數List,第一個元素是程式本身路徑sys.modules.krys()  返回所有已經匯入的模組列表sys.exc_info()  獲取當前正在處理的異常類,exc_type、exc_value、exc_traceback當前處理的異常詳細資訊s

Python之——pyClamad模組常用方法說明

轉載請註明出處:http://blog.csdn.net/l1028386804/article/details/78994855 我們來看看pyClamad提供了哪些方法,它主要提供了兩個關鍵類,一個為ClamdNetworkSocket()類,實現使用網路套接字操作cl

python os.path模組和 sys.path.append模組常用方法詳解

轉載自:http://blog.csdn.net/JOJOY_tester/article/details/54575264 https://www.cnblogs.com/wuxie1989/p/5623435.html記錄下:python 的 sys.path.appen

python的functools模組常用方法介紹

functools模組中有兩個方法是從_functools引入的,分別是partial和reduce函式。 functools模組是python2.5版本新增的模組。 1.偏函式partial python中的偏函式與數學的偏函式意義不同,python中的

python-re模組常用的函式及方法

常見的正則表示式屬性 僅僅是re模組函式 compile(pattern,flags= 0) 使用任何可選的標記來編譯正則表示式的模式,然後返回一個正則表示式物件 re 模組函式和正則表示式物件的方

Python的re模組常用方法

re模組下的常用方法: search 匹配就 返回一個變數,通過group取匹配到的第一個值,不匹配就返回None,group會報錯match 相當於search的正則表示式中加了一個'^'spilt 返回列表,按照正則規則切割,預設匹配到的內容會被切掉sub/subn 替換,按照正則規則去尋找要被替

python列表(list)常用方法整理

內容 翻轉 error 刪除 列表 參數 list res == 1.append(obj) 向列表中添加一個對象obj 2.count(obj) 返回一個對象obj在列表中出現的次數. 3.extend(seq) 把序列seq的內容添加到列表中。 4.index(ob

python中OS常用方法

posix one 獲得 常用 chdir mac 絕對路徑 itext 文件大小 Python的標準庫中的os模塊包含普遍的操作系統功能。如果你希望你的程序能夠與平臺無關的話,這個模塊是尤為重要的。即它允許一個程序在編寫後不需要任何改動,也不會發生任何問題,就可以在Lin