重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
有些Python小白對numpy中的常見函數不太了解,今天小編就整理出來分享給大家。
創新互聯公司專業為企業提供遷安網站建設、遷安做網站、遷安網站設計、遷安網站制作等企業網站建設、網頁設計與制作、遷安企業網站模板建站服務,十年遷安做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
Numpy是Python的一個科學計算的庫,提供了矩陣運算的功能,其一般與Scipy、matplotlib一起使用。其實,list已經提供了類似于矩陣的表示形式,不過numpy為我們提供了更多的函數。
數組常用函數
1.where()按條件返回數組的索引值
2.take(a,index)從數組a中按照索引index取值
3.linspace(a,b,N)返回一個在(a,b)范圍內均勻分布的數組,元素個數為N個
4.a.fill()將數組的所有元素以指定的值填充
5.diff(a)返回數組a相鄰元素的差值構成的數組
6.sign(a)返回數組a的每個元素的正負符號
7.piecewise(a,[condlist],[funclist])數組a根據布爾型條件condlist返回對應元素結果
8.a.argmax(),a.argmin()返回a最大、最小元素的索引
改變數組維度
a.ravel(),a.flatten():將數組a展平成一維數組
a.shape=(m,n),a.reshape(m,n):將數組a轉換成m*n維數組
a.transpose,a.T轉置數組a
數組組合
1.hstack((a,b)),concatenate((a,b),axis=1)將數組a,b沿水平方向組合
2.vstack((a,b)),concatenate((a,b),axis=0)將數組a,b沿豎直方向組合
3.row_stack((a,b))將數組a,b按行方向組合
4.column_stack((a,b))將數組a,b按列方向組合
數組分割
1.split(a,n,axis=0),vsplit(a,n)將數組a沿垂直方向分割成n個數組
2.split(a,n,axis=1),hsplit(a,n)將數組a沿水平方向分割成n個數組
數組修剪和壓縮
1.a.clip(m,n)設置數組a的范圍為(m,n),數組中大于n的元素設定為n,小于m的元素設定為m
2.a.compress()返回根據給定條件篩選后的數組
數組屬性
1.a.dtype數組a的數據類型
2.a.shape數組a的維度
3.a.ndim數組a的維數
4.a.size數組a所含元素的總個數
5.a.itemsize數組a的元素在內存中所占的字節數
6.a.nbytes整個數組a所占的內存空間7.a.astype(int)轉換a數組的類型為int型
數組計算
1.average(a,weights=v)對數組a以權重v進行加權平均
2.mean(a),max(a),min(a),middle(a),var(a),std(a)數組a的均值、最大值、最小值、中位數、方差、標準差
3.a.prod()數組a的所有元素的乘積
4.a.cumprod()數組a的元素的累積乘積
5.cov(a,b),corrcoef(a,b)數組a和b的協方差、相關系數
6.a.diagonal()查看矩陣a對角線上的元素7.a.trace()計算矩陣a的跡,即對角線元素之和
以上就是numpy中的常見函數。更多Python學習推薦:PyThon學習網教學中心。
表示一個功能,函數定義著是提供功能的人,函數調用者是使用功能的人。
print:打印功能,將括號中的內容,顯示到終端。
將括號中的內容顯示在控制臺.
input:輸入功能,從終端中獲取輸入的信息,存到程序變量當中
作用:將用戶輸入的內容賦值給變量
第一個字符必須是字母表中字母或下劃線 _ 。
標識符的其他的部分由字母、數字和下劃線組成。
標識符對大小寫敏感。
python最具特色的就是使用縮進來表示代碼塊,不需要使用大括號 {} 。
縮進的空格數是可變的,但是同一個代碼塊的語句必須包含相同的縮進空格數。實例如下:
map() 函數接受兩個參數,一個是函數,一個是可迭代對象(Iterable), map 將傳入的函數依次作用到可迭代對象的每一個元素,并把結果作為迭代器(Iterator)返回。
舉例說明,有一個函數 f(x)=x^2 ,要把這個函數作用到一個list [1,2,3,4,5,6,7,8,9] 上:
運用簡單的循環可以實現:
運用高階函數 map() :
結果 r 是一個迭代器,迭代器是惰性序列,通過 list() 函數讓它把整個序列都計算出來并返回一個 list 。
如果要把這個list所有數字轉為字符串利用 map() 就簡單了:
小練習:利用 map() 函數,把用戶輸入的不規范的英文名字變為首字母大寫其他小寫的規范名字。輸入 ['adam', 'LISA', 'barT'] ,輸出 ['Adam', 'Lisa', 'Bart']
reduce() 函數也是接受兩個參數,一個是函數,一個是可迭代對象, reduce 將傳入的函數作用到可迭代對象的每個元素的結果做累計計算。然后將最終結果返回。
效果就是: reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
舉例說明,將序列 [1,2,3,4,5] 變換成整數 12345 :
小練習:編寫一個 prod() 函數,可以接受一個 list 并利用 reduce 求積:
map() 和 reduce() 綜合練習:編寫 str2float 函數,把字符串 '123.456' 轉換成浮點型 123.456
filter() 函數用于過濾序列, filter() 也接受一個函數和一個序列, filter() 把傳入的函數依次作用于每個元素,然后根據返回值是 True 還是 False 決定保留還是丟棄該元素。
舉例說明,刪除list中的偶數:
小練習:用 filter() 求素數
定義一個篩選函數:
定義一個生成器不斷返回下一個素數:
打印100以內素數:
python內置的 sorted() 函數可以對list進行排序:
sorted() 函數也是一個高階函數,還可以接受一個 key 函數來實現自定義排序:
key 指定的函數將作用于list的每一個元素上,并根據 key 函數返回的結果進行排序.
默認情況下,對字符串排序,是按照ASCII的大小比較的,由于'Z' 'a',結果,大寫字母Z會排在小寫字母a的前面。如果想忽略大小寫可都轉換成小寫來比較:
要進行反向排序,不必改動key函數,可以傳入第三個參數 reverse=True :
小練習:假設我們用一組tuple表示學生名字和成績: L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)] 。用sorted()對上述列表分別按c成績從高到低排序:
運用匿名函數更簡潔:
在寫python程序時,常能用到一些函數和方法,總結一下,保存起來,方便查詢。
一、內置函數
# abs()獲取數字絕對值
# chr(i)數字轉換為字符類型
# divmod() 獲取兩個數值的商和余數
# enumerate() 將可遍歷序列組合為索引序列
# float()轉換為浮點數
# format() 格式化字符串
# int()轉換為整數?
# input() 接受用戶輸入內容
# len() 計算元素個數
# max() 返回最大值
# min() 返回最小值
# math.ceil() 返回指定數值的上舍整數
# open()打開文件并返回文件對象
# pow() 冪運算
# print()打印輸出?
# range() 生成器
# reversed()反轉所有元素
# round()四舍五入求值
# sorted()對可迭代對象進行排序?
# str() 轉換為字符串
# sum() 求和
# set() 創建集合
# tuple() 將序列轉換為元組
# zip()將可迭代對象打包成元組
二、方法
# append() 添加列表元素
# capitalize()首字母轉換為大寫?
# count()字符出現次數
# close() 關閉文件
# decode() 解碼字符串
# dict.keys() 獲取字典所有的鍵
# find()字符串首次出現的索引
# f.read() 讀取文件內容
# dict.update()更新字典
# dict.items() 獲取字典鍵/值對
# dict.get() 返回指定鍵的值
# encode() 編碼字符串
# list.sort() 排序列表元素
# index() 元素首次出現的索引
# isdigit() 判斷字符串是否只由數字組成
# isupper() 是否所有字母都為大寫
# isnum() 判斷字符串是否由字母和數字組成
# islower() 是否所有字母都為小寫
# isdecimal() 檢查字符串是否只包含十進制字符
# isalpha() 檢測字符串是否為純字母
# random.shuffle()隨機排序
# random.sample()返回無重復隨機數列表
# random.choice() 返回一個隨機元素
# random.randint() 生成指定范圍的隨機整數
# random.randrange() 生成指定范圍的指定遞增基數隨機整數
# pop() 刪除列表中的元素
# remove()刪除列表中的指定元素
# strip()去除空格
# lstrip()去除左側空格
# rstrip() 去除右側空格
# readline() 讀取單行內容
# root.after() Tkinter中等待一段時間后再執行命令
# str.isnumeric() 驗證字符串是否為數字(適用于Unicode)
# split()分割字符串
# ord() 將字符轉換為整數
# replace() 字符串替換
# ljust() 左對齊填充
# rjust() 左對齊填充
# readlines() 讀取所有行內容
# datetime.datetime.now() 返回指定時區的本地日期時間
# datetime.datetime.today() 獲取當前本地日期的date對象
# datetime.utcnow() 返回當前UTC時間的datetime對象
# time.strptime()把時間字符串解析為元組
# time.time()返回當前時間的時間戳
# time.sleep()暫停指定秒數
# time.strftime() 返回指定格式的日期字符串
# time.mktime() 接收時間元組并返回時間戳
# os.getcwd() 獲取當前工作目錄
# os.listdir() 獲取指定路徑下的目錄和文件列表
# os.makedirs() 遞歸創建目錄
# os.rename() 重命名目錄或文件
# os.path.exists() 判斷路徑是否存在
# upper() 全部轉換為大寫字母
# lower()? 全部轉換為小寫字母
# sys.stdout.write() 標準輸出打印
# sys.stdout.flush()刷新輸出?
# shutil.copy() 復制單個文件到另一文件或目錄
# write() 寫入文件內容
# winsound.Beep() 打開電腦揚聲器
# zfill() 在字符串前面填充0
三、循環語句
# break終止當前循環
# continue 終止本循環進入下一次循環
# with open() as file 以with語句打開文件(數據保存)
四、轉義字符
\ 行尾續行符
\' 單引號?
\'' 雙引號
\a 響鈴
\e 轉義
\n 換行
\t 橫向制表符
\f 換頁
\xyy 十六進制yy代表的字符
\\反斜杠符號
\b 退格
\000 空
\v 縱向制表符
\r 回車
\0yy 八進制yy代表的字符
\other 其他的字符以普通格式輸出
通過關鍵字def來創建函數,def的作用是實現python中函數的創建
函數定義過程:
函數名+()小括號執行函數
函數體內對全局變量只能讀取,不能修改
局部變量,無法在函數體外使用
python 使用 lambda 來創建匿名函數。
所謂匿名,意即不再使用 def 語句這樣標準的形式定義一個函數。