DataMining Python基礎入門

2022-08-18 19:48:08 字數 4916 閱讀 2084

科學計算發行版:python(x,y),集合了諸多包。

一、python使用入門

1、基本命令

(1)基本運算

*,**分別表示乘法和冪運算,可進行多重賦值:

in [1]: 3*4out[1]: 12in [2]: 3**4out[2]: 81in [3]: a,bb,ccc=2,'

python

',[2,3,4]

in [4]: a

out[4]: 2in [5]: bb

out[5]: '

python

'in [6]: ccc

out[6]: [2, 3, 4]

多重賦值可針對不同型別,如數值、序列、字串等。

(2)迴圈與判斷

range(a,b,c)得到序列,間隔為c,首項為a,最大值為b-1;range(a)表示從0到a-1:

in [7]: range(1,11,2)

out[7]: [1, 3, 5, 7, 9]

in [8]: range(13)

out[8]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

迴圈和判斷: 

#

for迴圈

for i in range(11):

a=a+i**2

printa#

while迴圈

i=0;a=2;

while i<11:

a=a+i**2;

i=i+1;

print

(a)#

if 判斷

s=0;

if s in range(2):

print u'

s 在裡面'#

u表示unicode字串

else

:

print u'

s 不在裡面

'

u'字串'表示unicode字串;

(3)自編函式

in [48]: def

fun1(x):

...:

return x*3...:

...: fun1(3)

out[48]: 9in [49]: def fun2(x=1,y=2):#

這裡給出缺省引數

...: return [x+y,x-y] #

返回列表

...:

...: fun2()

#返回預設值

out[49]: [3, -1]

in [50]: fun2(2,3)

out[50]: [5, -1]

in [51]: def

fun3(x,y) :

...:

return x*y,x^y #

雙重返回。類似於多重賦值#

...:

...: fun3(2,4)

out[51]: (8, 6)

另一種簡潔的方法:lambda 

in [57]: f1=lambda x:x*x-3*x

...: f1(5)

out[57]: 10in [58]: f2=lambda x,y,z:x+y,x*z,y**z

...: f2(1,3,2) #

lambda中的表示式不能含有命令,而且只限一條表示式,無法得到結果

traceback (most recent call last):

file

"", line 1, in

f2=lambda x,y,z:x+y,x*z,y**z

nameerror: name 'x

'isnot defined

2、python資料型別:列表,元組,字典,集合

(1)元組/列表

兩者的基本操作都一樣,只是元組不可以修改。

in [62]: a=[1,2,3,4,'

python

',[1,2,3]];b=(11,22,33,44,'

python

',[1,2,3])

in [63]: a

out[63]: [1, 2, 3, 4, '

python

', [1, 2, 3]]

in [64]: b

out[64]: (11, 22, 33, 44, '

python

', [1, 2, 3])

in [2]: a[0]=0;a #

列表a的第乙個元素被修改

out[2]: [0, 2, 3, 4, '

python

', [1, 2, 3]]

in [3]: b[0]=0;b #

元組b無法修改

traceback (most recent call last):

file

"", line 1, in

b[0]=0;b

typeerror:

'tuple

' object does not

support item assignment]

in [10]: list('

python

') #

列舉出物件的每乙個元素,字串拆分為列表

out[10]: ['

p', '

y', '

t', '

h', '

o', 'n'

]in [11]: tuple((1,2,'

python

')) #

拆分為元組

out[11]: (1, 2, '

python

')

另外列表還有很多的操作方法,詳見《python基礎教程(第二版)》。

(2)字典

in [16]: a=

in [17]: a

out[17]:

in [18]: a['

first']

out[18]: '

zhang

'in [19]: a['

second']

out[19]: '

qiang

'in [20]: dict([['

no1',11],['

no2',22]])

out[20]:

in [21]: b=dict([['

no1',11],['

no2',22]])

in [22]: b['

no1'

]out[22]: 11

相當於給每乙個下標的位置取了個名字。

(3)集合

集合的特點是沒有重複元素,且滿足集合的基本運算:{}表示集合,裡面的元素會自動去重

in [27]: 

out[27]:

in [28]: a=set([1,2,3,3,3,2,1,2,4,5,5,2,3,45])

in [29]: b=

in [30]: a|b #集合的並

out[30]:

in [31]: a&b #集合的交

out[31]:

in [32]: a-b #差集

out[32]:

in [33]: a^b # a∪b-a∩b

out[33]:

(4)map()、reduce()、filter()函式

in [34]: a=[1,2,3,44,55]

in [35]: b=[i*2+1 for i in

a]in [36]: b

out[36]: [3, 5, 7, 89, 111]

其中的i可以認為是每乙個下標,對每乙個元素進行操作,返回b;map()函式將命令逐一應用,屬於迴圈運算

in [39]: b=map(lambda x:x**2+2,a);

...: list(b)

#這是python3.0中要求的

out[39]: [3, 6, 11, 1938, 3027]

reduce()函式用於遞迴運算:

in [48]: a=range(-1,9,2)

in [49]: reduce(lambda x,y:x+y,range(-1,9,2)) #

前後累加

out[49]: 15in [50]: reduce(lambda x,y:x*y,range(-1,9,2)) #

前後連乘

out[50]: -105in [51]: reduce(lambda x,y:x+2*y+x**2,range(-1,9,2)) #

前後累加

out[51]: 27736

filter()依據條件函式進行過濾:

in [58]: a=range(-1,9,2);a

out[58]: [-1, 1, 3, 5, 7]

in [59]: filter(lambda x:x>0 and x<6,a)

out[59]: [1, 3, 5]

#選取元素中滿足條件的,

in [61]: [a[i] for i in range(len(a)) if a[i]<6 and a[i]>0 ]

out[61]: [1, 3, 5]

(5)庫函式的匯入於使用

苦和庫中的函式均可重新命名

in [66]: import

pandas as pa

in [67]: from math import

sin as zx

in [68]: zx(1)

out[68]: 0.8414709848078965

python的基礎列表 python基礎入門 列表

列表 1.關鍵字 list 2.定義 用來儲存資料可儲存多種資料型別 支援索引,切片 是有序的 可變的 3.定義乙個列表 l1 列表 字串 lnh 123,kk0 ttt 索引 print l1 0 列表 切片 print l1 0 3 列表 字串 lnh 列表的增刪改查 增加print l1 列表...

Matlab 和 Simulink 學習基礎入門

matlab矩陣運算與資料視覺化 matlab指令碼 函式和實時編輯器 matlab資料分析 流程與優勢 matlab 學習工具與資源 matlab 為工程學和和科學家設計 matlab工具箱得心應手 matlab 具有互動式應用 matlab 整合工作流程 matlab 迅速高效 matlab 備...

vue 入坑指南 一 vue 基礎語法

1.模板語法 1.1 mustache語法 在html獲取data中msg變數的值1.2 html賦值 v html 將內容當成html標籤輸出 html 類似1.3繫結屬性 v bind id 新增繫結乙個標籤的屬性 attr 類似1.4 表示式 三目運算表示式1.5 文字賦值 v text 和 ...