Datawhale組隊學習Pandas

2021-10-12 03:04:25 字數 3571 閱讀 7657

下面直接展示內聯**片。(#備註內容為學習後的感想與總結)

# author: xuxt time:

2020/12

/14l=

def my_func

(x):

return

2* x

for i in

range(5

):l.

(my_func

(i))

print(l

)# 定義「我的函式」輸入x,返回,2x,即輸入1,2,3,4,5可以得到2,4,6,8,10。for

in迴圈,範圍是5,i從0取到4。a1=

[my_func

(i)for i in

range(5

)]print(a1

)# 簡化寫法可以改寫為[

*for i in

*]。第乙個*為對映函式,把i通過某乙個函式對映到輸出值,第二個*

為迭代物件range(5

),即0,1,2,3,4,傳到對映函式中。a2=

[m +

'_'+ n for m in

['a'

,'b'

]for n in

['c'

,'d']]

print(a2

)# m對a,b列表進行迭代,n對c,d列表進行迭代,前者為外層迴圈,後者為內層迴圈

a, b =

'cat'

,'dog'

condition =

2>

1if condition:

value = a

else

: value = b

value =

'cat'if2

>

1else

'dog'

print

(value)

# 同樣是簡寫,帶有if的條件賦值的語法糖。a、b分別賦值為cat、dog,條件為2

>

1,如果條件符合則為cat,條件不符則為dog。簡化後可以直接cat if 條件,否則dog。a3=

[1,2

,3,4

,5,6

,7]a4

=[i if i <=

5else

5for i ina3]

print(a4

)# 截斷。a3賦值為1

-7的陣列,a4語法糖的截斷,如果i小於等於5則為i,否則為5,即大於5時i取5.i在a3中迴圈。

# author: xuxt time:

2020/12

/16my_func = lambda x:

2* x

print

(my_func(3

))print

((lambda x:

2* x)(3

))# 匿名函式。前文提到的my_func函式應def定義一下,這裡使用匿名函式,不一定需要把def函式顯示出來。如兩個print結果是一致的,即可以不需要賦值乙個my_func函式

multi_para_func = lambda a, b: a + b

print

(multi_para_func(1

,2))

print

((lambda a, b: a + b)(1

,2))

# 同理,這裡的multi_para_func函式,使用lambda做乙個加法,兩個print的結果一致。a1=

[(lambda x:

2*x)

(i)for i in

range(5

)]print(a1

)'''

顯然,上述的兩個print的1式都不是嚴格意義上的「匿名」,此處為不關心函式名字只關心對映的例子。

如式子中

(lambda x:

2*x)

(i)為對映函式,for

in迴圈,迭代物件range(5

)。即取值為0,1,2,3,4傳入對映函式輸出應為0,2,4,6,8

'''a2

=list

(map

(lambda x:

2*x,

range(5

)))print(a2

)# python為這類列表推導式的匿名函式對映提供了map函式來完成,返回的是map物件,需要list轉為列表。輸出得到與上述內容相同的結果。a3=

list

(map

(lambda x, y:

str(x)

+'_'

+y,range(5

),list

('abcd'))

)print(a3

)# 多個函式對映時,可以增加map函式中迭代物件實現。如同樣的,lambda表示對映函式,range、list

('abcde'

)表示迭代關係。

# author: xuxt time:

2020/12

/16l1,

l2,l3=

list

('abc'),

list

('def'),

list

('hij')a1

=list

(zip(l1

,l2,l3

))print(a1

)for i, j, k in

zip(l1,

l2,l3)

:print

(i, j, k)

for i, j, k inl1,

l2,l3:

print

(i, j, k)

''' 字串外面加list將其轉成了單個元素的列表,如list

('abc'

)→[『a』, 『b』,

'c']。

將第乙個位置對應的元素都打包在一起,可使用zip函式。

往往在迴圈迭代的時候用到zip函式,可以看到有無zip函式輸出的結果是不同的,加入zip正式為了打包各列表第乙個位置對應的元素。

'''l

=list

('abcd'

)for index, value in

enumerate(l

):print

(index, value)

for index, value in

zip(

range

(len(l

)),l

):print

(index, value)

zipped =

list

(zip(l1

,l2,l3

))print

(zipped)a2=

list

(zip

(*zipped)

)print(a2

)'''

enumerate是另一種特殊的打包,它可以在迭代時繫結迭代元素的遍歷序號。

同樣,zip函式也能實現該功能。

有打包功能也有解壓功能,zip函式與*聯用即為解壓。

'''

元組 datawhale組隊學習python基礎

元組 定義語法為 元素1,元素2,元素n 與列表不同,元組是 列表是。t1 1 10.31 python t2 1,10.31 python print t1,type t1 1,10.31,python print t2,type t2 1,10.31,python tuple1 1 2,3 4,...

Datawhale組隊學習 Task01 02

這兩天主要學習的內容如下 task01 線性回歸 softmax與分類模型 多層感知機 1天 task02 文字預處理 語言模型 迴圈神經網路基礎 1天 num epochs 3for epoch in range 1 num epochs 1 for x,y in data iter output...

Datawhale公益AI組隊學習Task3 5

一類是模型無法得到較低的訓練誤差,我們將這一現象稱作欠擬合 underfitting 另一類是模型的訓練誤差遠小於它在測試資料集上的誤差,我們稱該現象為過擬合 overfitting 在實踐中,我們要盡可能同時應對欠擬合和過擬合。雖然有很多因素可能導致這兩種擬合問題,在這裡我們重點討論兩個因素 模型...