Python內置函數有很多,為大家推薦5個神仙級的內置函數:
津市ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創新互聯建站的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
(1)Lambda函數
用于創建匿名函數,即沒有名稱的函數。它只是一個表達式,函數體比def簡單很多。當我們需要創建一個函數來執行單個操作并且可以在一行中編寫時,就可以用到匿名函數了。
Lamdba的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。
利用Lamdba函數,往往可以將代碼簡化許多。
(2)Map函數
會將一個函數映射到一個輸入列表的所有元素上,比如我們先創建了一個函數來返回一個大寫的輸入單詞,然后將此函數應有到列表colors中的所有元素。
我們還可以使用匿名函數lamdba來配合map函數,這樣可以更加精簡。
(3)Reduce函數
當需要對一個列表進行一些計算并返回結果時,reduce()是個非常有用的函數。舉個例子,當需要計算一個整數列表所有元素的乘積時,即可使用reduce函數實現。
它與函數的最大的區別就是,reduce()里的映射函數(function)接收兩個參數,而map接收一個參數。
(4)enumerate函數
用于將一個可遍歷的數據對象(如列表、元組或字符串)組合為一個索引序列,同時列出數據和數據下標,一般用在for循環當中。
它的兩個參數,一個是序列、迭代器或其他支持迭代對象;另一個是下標起始位置,默認情況從0開始,也可以自定義計數器的起始編號。
(5)Zip函數
用于將可迭代的對象作為參數,將對象中對應的元素打包成一個個元組,然后返回由這些元組組成的列表
當我們使用zip()函數時,如果各個迭代器的元素個數不一致,則返回列表長度與最短的對象相同。
NumPy是一個關于矩陣運算的庫,熟悉Matlab的都應該清楚,這個庫就是讓python能夠進行矩陣話的操作,而不用去寫循環操作。
下面對numpy中的操作進行總結。
numpy包含兩種基本的數據類型:數組和矩陣。
數組(Arrays)
from numpy import * a1=array([1,1,1]) #定義一個數組 a2=array([2,2,2]) a1+a2 #對于元素相加array([3, 3, 3]) a1*2 #乘一個數array([2, 2, 2])## a1=array([1,2,3]) a1
array([1, 2, 3]) a1**3 #表示對數組中的每個數做平方array([ 1, 8, 27])##取值,注意的是它是以0為開始坐標,不matlab不同 a1[1]2##定義多維數組 a3=array([[1,2,3],[4,5,6]]) a3
array([[1, 2, 3],
[4, 5, 6]]) a3[0] #取出第一行的數據array([1, 2, 3]) a3[0,0] #第一行第一個數據1 a3[0][0] #也可用這種方式1##數組點乘,相當于matlab點乘操作 a1=array([1,2,3]) a2=array([4,5,6]) a1*a2
array([ 4, 10, 18])12345678910111213141516171819202122232425262728293031323334
Numpy有許多的創建數組的函數:
import numpy as np
a = np.zeros((2,2)) # Create an array of all zerosprint a # Prints "[[ 0. 0.]
# [ 0. 0.]]"b = np.ones((1,2)) # Create an array of all onesprint b # Prints "[[ 1. 1.]]"c = np.full((2,2), 7) # Create a constant arrayprint c # Prints "[[ 7. 7.]
# [ 7. 7.]]"d = np.eye(2) # Create a 2x2 identity matrixprint d # Prints "[[ 1. 0.]
# [ 0. 1.]]"e = np.random.random((2,2)) # Create an array filled with random valuesprint e # Might print "[[ 0.91940167 0.08143941]
# [ 0.68744134 0.87236687]]"1234567891011121314151617181920
數組索引(Array indexing)
矩陣
矩陣的操作與Matlab語言有很多的相關性。
#創建矩陣
m=mat([1,2,3])
m
matrix([[1, 2, 3]])
#取值
m[0] #取一行
matrix([[1, 2, 3]])
m[0,1] #第一行,第2個數據2 m[0][1] #注意不能像數組那樣取值了
Traceback (most recent call last):
File "stdin", line 1, in module
File "/usr/lib64/python2.7/site-packages/numpy/matrixlib/defmatrix.py", line 305, in __getitem__
out = N.ndarray.__getitem__(self, index)
IndexError: index 1 is out of bounds for axis 0 with size 1#將Python的列表轉換成NumPy的矩陣
list=[1,2,3]
mat(list)
matrix([[1, 2, 3]])
#矩陣相乘
m1=mat([1,2,3]) #1行3列
m2=mat([4,5,6])
m1*m2.T #注意左列與右行相等 m2.T為轉置操作
matrix([[32]])
multiply(m1,m2) #執行點乘操作,要使用函數,特別注意
matrix([[ 4, 10, 18]])
#排序
m=mat([[2,5,1],[4,6,2]]) #創建2行3列矩陣
m
matrix([[2, 5, 1],
[4, 6, 2]])
m.sort() #對每一行進行排序
m
matrix([[1, 2, 5],
[2, 4, 6]])
m.shape #獲得矩陣的行列數
(2, 3)
m.shape[0] #獲得矩陣的行數2 m.shape[1] #獲得矩陣的列數3#索引取值
m[1,:] #取得第一行的所有元素
matrix([[2, 4, 6]])
m[1,0:1] #第一行第0個元素,注意左閉右開
matrix([[2]])
m[1,0:3]
matrix([[2, 4, 6]])
m[1,0:2]
matrix([[2, 4]])1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
擴展矩陣函數tile()
例如,要計算[0,0,0]到一個多維矩陣中每個點的距離,則要將[0,0,0]進行擴展。
tile(inX, (i,j)) ;i是擴展個數,j是擴展長度
實例如下:
x=mat([0,0,0])
x
matrix([[0, 0, 0]])
tile(x,(3,1)) #即將x擴展3個,j=1,表示其列數不變
matrix([[0, 0, 0],
[0, 0, 0],
[0, 0, 0]])
tile(x,(2,2)) #x擴展2次,j=2,橫向擴展
matrix([[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0]])1234567891011121314
import?math
def?multi(a,b):
return?a*b
if?__name__=="__main__":
a,b,c=map(int,input().split())?#一行輸入用空格分割
print(multi(multi(a,b),c))
python3.5引入了一個新的語法@來表示矩陣乘法,但標準庫內并沒有使用它的地方,numpy中可以使用。
import math
r=math.floor(3.2) #向下取整
print(r)
r=math.ceil(4.5) #向上取整
print(r)
r=abs(-2)
r=round(4.5) #四舍五入
r=math.pow(3,2) #冪運算
r=math.sqrt(25) #開平方
其中 函數fabs和abs的區別:函數fabs的作用是求浮點數x的絕對值;函數abs的作用是求x的絕對值。fabs函數原型:double fabs(double x);abs函數原型:int fabs(int x)。fabs函數參數:參數x是一個浮點數;abs函數參數:參數x是一個整數
8個超好用內置函數set(),eval(),sorted(),reversed(),map(),reduce(),filter(),enumerate()
python中有許多內置函數,不像print那么廣為人知,但它們卻異常的強大,用好了可以大大提高代碼效率。
這次來梳理下8個好用的python內置函數
1、set()
當需要對一個列表進行去重操作的時候,set()函數就派上用場了。
用于創建一個集合,集合里的元素是無序且不重復的。集合對象創建后,還能使用并集、交集、差集功能。
2、eval()之前有人問如何用python寫一個四則運算器,輸入字符串公式,直接產生結果。用eval()來做就很簡單:eval(str_expression)作用是將字符串轉換成表達式,并且執行。
3、sorted()在處理數據過程中,我們經常會用到排序操作,比如將列表、字典、元組里面的元素正/倒排序。這時候就需要用到sorted() ,它可以對任何可迭代對象進行排序,并返回列表。對列表升序操作:
對元組倒序操作:
使用參數:key,根據自定義規則,按字符串長度來排序:
根據自定義規則,對元組構成的列表進行排序:
4、reversed()如果需要對序列的元素進行反轉操作,reversed()函數能幫到你。reversed()接受一個序列,將序列里的元素反轉,并最終返回迭代器。
5、map()做文本處理的時候,假如要對序列里的每個單詞進行大寫轉化操作。這個時候就可以使用map()函數。
map()會根據提供的函數,對指定的序列做映射,最終返回迭代器。也就是說map()函數會把序列里的每一個元素用指定的方法加工一遍,最終返回給你加工好的序列。舉個例子,對列表里的每個數字作平方處理:
6、reduce()前面說到對列表里的每個數字作平方處理,用map()函數。那我想將列表里的每個元素相乘,該怎么做呢?這時候用到reduce()函數。
reduce()會對參數序列中元素進行累積。第一、第二個元素先進行函數操作,生成的結果再和第三個元素進行函數操作,以此類推,最終生成所有元素累積運算的結果。再舉個例子,將字母連接成字符串。
你可能已經注意到,reduce()函數在python3里已經不再是內置函數,而是遷移到了functools模塊中。這里把reduce()函數拎出來講,是因為它太重要了。
7、filter()一些數字組成的列表,要把其中偶數去掉,該怎么做呢?
filter()函數輕松完成了任務,它用于過濾序列,過濾掉不符合條件的元素,返回一個迭代器對象。filter()函數和map()、reduce()函數類似,都是將序列里的每個元素映射到函數,最終返回結果。我們再試試,如何從許多單詞里挑出包含字母w的單詞。
8、enumerate()這樣一個場景,同時打印出序列里每一個元素和它對應的順序號,我們用enumerate()函數做做看。
enumerate翻譯過來是枚舉、列舉的意思,所以說enumerate()函數用于對序列里的元素進行順序標注,返回(元素、索引)組成的迭代器。再舉個例子說明,對字符串進行標注,返回每個字母和其索引。
網頁標題:python點乘函數,python累乘函數
本文URL:http://m.kartarina.com/article48/hscoep.html
成都網站建設公司_創新互聯,為您提供做網站、靜態網站、網站策劃、網站內鏈、虛擬主機、網頁設計公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯