數據統計分析三大軟體「python數據分析可視化」

Python提供的基本數據類型主要有:布爾類型、整型、浮點型、字元串、列表、元組、集合、字典等等。接下來,就讓我來具體的介紹一下吧。

Python Number(數字)

Python Number 數據類型用於存儲數值。

數據類型是不允許改變的,這就意味著如果改變 Number 數據類型的值,將重新分配內存空間。

以下實例在變數賦值時 Number 對象將被創建:

var1 = 1
var2 = 10

您也可以使用del語句刪除一些 Number 對象引用。

del語句的語法是:

del var1[,var2[,var3[....,varN]]]]

您可以通過使用del語句刪除單個或多個對象,例如:

del var
del var_a, var_b

Python 支持四種不同的數值類型:

  • 整型(Int) – 通常被稱為是整型或整數,是正或負整數,不帶小數點。
  • 長整型(long integers) – 無限大小的整數,整數最後是一個大寫或小寫的L。
  • 浮點型(floating point real values) – 浮點型由整數部分與小數部分組成,浮點型也可以使用科學計數法表示(2.5e2 = 2.5 x 102 = 250)
  • 複數(complex numbers) – 複數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示, 複數的實部a和虛部b都是浮點型。
intlongfloatcomplex
1051924361L0.03.14j
100-0x19323L15.2045.j
-7860122L-21.99.322e-36j
0800xDEFABCECBDAECBFBAEl32.3+e18.876j
-0490535633629843L-90.-.6545+0J
-0x260-052318172735L-32.54e1003e+26J
0x69-4721885298529L70.2-E124.53e-7j
  • 長整型也可以使用小寫”L”,但是還是建議您使用大寫”L”,避免與數字”1″混淆。Python使用”L”來顯示長整型。
  • Python還支持複數,複數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示, 複數的實部a和虛部b都是浮點型

Python Number 類型轉換

int(x [,base ])         將x轉換為一個整數  
long(x [,base ])        將x轉換為一個長整數  
float(x )               將x轉換到一個浮點數  
complex(real [,imag ])  創建一個複數  
str(x )                 將對象 x 轉換為字元串  
repr(x )                將對象 x 轉換為表達式字元串  
eval(str )              用來計算在字元串中的有效Python表達式,並返回一個對象  
tuple(s )               將序列 s 轉換為一個元組  
list(s )                將序列 s 轉換為一個列表  
chr(x )                 將一個整數轉換為一個字元  
unichr(x )              將一個整數轉換為Unicode字元  
ord(x )                 將一個字元轉換為它的整數值  
hex(x )                 將一個整數轉換為一個十六進位字元串  
oct(x )                 將一個整數轉換為一個八進位字元串  

Python math 模塊、cmath 模塊

Python 中數學運算常用的函數基本都在 math 模塊、cmath 模塊中。

Python math 模塊提供了許多對浮點數的數學運算函數。

Python cmath 模塊包含了一些用於複數運算的函數。

cmath 模塊的函數跟 math 模塊函數基本一致,區別是 cmath 模塊運算的是複數,math 模塊運算的是數學運算。

要使用 math 或 cmath 函數必須先導入:

import math

查看 math 查看包中的內容:

>>> import math
>>> dir(math)
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
>>>

下文會介紹各個函數的具體應用。

查看 cmath 查看包中的內容

>>> import cmath
>>> dir(cmath)
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'cos', 'cosh', 'e', 'exp', 'inf', 'infj', 'isclose', 'isfinite', 'isinf', 'isnan', 'log', 'log10', 'nan', 'nanj', 'phase', 'pi', 'polar', 'rect', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau']
>>>

實例

>>> import cmath
>>> cmath.sqrt(-1)
1j
>>> cmath.sqrt(9)
(3+0j)
>>> cmath.sin(1)
(0.8414709848078965+0j)
>>> cmath.log10(100)
(2+0j)
>>>

Python數學函數

函數返回值 ( 描述 )
abs(x)返回數字的絕對值,如abs(-10) 返回 10
ceil(x)返回數字的上入整數,如math.ceil(4.1) 返回 5
cmp(x, y)如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
exp(x)返回e的x次冪(ex),如math.exp(1) 返回2.718281828459045
fabs(x)返回數字的絕對值,如math.fabs(-10) 返回10.0
floor(x)返回數字的下舍整數,如math.floor(4.9)返回 4
log(x)如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x)返回以10為基數的x的對數,如math.log10(100)返回 2.0
max(x1, x2,…)返回給定參數的最大值,參數可以為序列。
min(x1, x2,…)返回給定參數的最小值,參數可以為序列。
modf(x)返回x的整數部分與小數部分,兩部分的數值符號與x相同,整數部分以浮點型表示。
pow(x, y)x**y 運算後的值。
round(x [,n])返回浮點數x的四捨五入值,如給出n值,則代表舍入到小數點後的位數。
sqrt(x)返回數字x的平方根

Python隨機數函數

隨機數可以用於數學,遊戲,安全等領域中,還經常被嵌入到演算法中,用以提高演算法效率,並提高程序的安全性。

Python包含以下常用隨機數函數:

函數描述
choice(seq)從序列的元素中隨機挑選一個元素,比如random.choice(range(10)),從0到9中隨機挑選一個整數。
randrange ([start,] stop [,step])從指定範圍內,按指定基數遞增的集合中獲取一個隨機數,基數默認值為 1
random()隨機生成下一個實數,它在[0,1)範圍內。
seed([x])改變隨機數生成器的種子seed。如果你不了解其原理,你不必特別去設定seed,Python會幫你選擇seed。
shuffle(lst)將序列的所有元素隨機排序
uniform(x, y)隨機生成下一個實數,它在[x,y]範圍內。

Python三角函數

Python包括以下三角函數:

函數描述
acos(x)返回x的反餘弦弧度值。
asin(x)返回x的反正弦弧度值。
atan(x)返回x的反正切弧度值。
atan2(y, x)返回給定的 X 及 Y 坐標值的反正切值。
cos(x)返回x的弧度的餘弦值。
hypot(x, y)返回歐幾里德範數 sqrt(x*x + y*y)。
sin(x)返回的x弧度的正弦值。
tan(x)返回x弧度的正切值。
degrees(x)將弧度轉換為角度,如degrees(math.pi/2) , 返回90.0
radians(x)將角度轉換為弧度

Python數學常量

常量描述
pi數學常量 pi(圓周率,一般以π來表示)
e數學常量 e,e即自然常數(自然常數)。

Python 字元串

字元串是 Python 中最常用的數據類型。我們可以使用引號(‘或”)來創建字元串。

創建字元串很簡單,只要為變數分配一個值即可。例如:

var1 = 'Hello World!'
var2 = "Python Runoob"

Python 訪問字元串中的值

Python 不支持單字元類型,單字元在 Python 中也是作為一個字元串使用。

Python 訪問子字元串,可以使用方括弧來截取字元串,如下實例:

實例(Python 2.0+)

#!/usr/bin/python var1 = ‘Hello World!’ var2 = “Python Runoob” print “var1[0]: “, var1[0] print “var2[1:5]: “, var2[1:5]

以上實例執行結果:

var1[0]:  H
var2[1:5]:  ytho

Python 字元串連接

我們可以對字元串進行截取並與其他字元串進行連接,如下實例:

實例(Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- var1 = ‘Hello World!’ print “輸出 :- “, var1[:6] + ‘Runoob!’

以上實例執行結果

輸出 :-  Hello Runoob!

Python 轉義字元

在需要在字元中使用特殊字元時,python 用反斜杠 \ 轉義字元。如下表:

轉義字元描述
\(在行尾時)續行符
\\反斜杠符號
\’單引號
\”雙引號
\a響鈴
\b退格(Backspace)
\e轉義
\000
\n換行
\v縱向製表符
\t橫向製表符
\r回車
\f換頁
\oyy八進位數,y 代表 0~7 的字元,例如:\012 代表換行。
\xyy十六進位數,以 \x 開頭,yy代表的字元,例如:\x0a代表換行
\other其它的字元以普通格式輸出

Python字元串運算符

下表實例變數 a 值為字元串 “Hello”,b 變數值為 “Python”:

操作符描述實例
+字元串連接>>>a + b ‘HelloPython’
*重複輸出字元串>>>a * 2 ‘HelloHello’
[]通過索引獲取字元串中字元>>>a[1] ‘e’
[ : ]截取字元串中的一部分>>>a[1:4] ‘ell’
in成員運算符 – 如果字元串中包含給定的字元返回 True>>>”H” in a True
not in成員運算符 – 如果字元串中不包含給定的字元返回 True>>>”M” not in a True
r/R原始字元串 – 原始字元串:所有的字元串都是直接按照字面的意思來使用,沒有轉義特殊或不能列印的字元。 原始字元串除在字元串的第一個引號前加上字母”r”(可以大小寫)以外,與普通字元串有著幾乎完全相同的語法。>>>print r’\n’ \n >>> print R’\n’ \n
%格式字元串請看下一章節

實例(Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- a = “Hello” b = “Python” print “a + b 輸出結果:”, a + b print “a * 2 輸出結果:”, a * 2 print “a[1] 輸出結果:”, a[1] print “a[1:4] 輸出結果:”, a[1:4] if( “H” in a) : print “H 在變數 a 中” else : print “H 不在變數 a 中” if( “M” not in a) : print “M 不在變數 a 中” else : print “M 在變數 a 中” print r’\n’ print R’\n’

以上程序執行結果為:

a + b 輸出結果: HelloPython
a * 2 輸出結果: HelloHello
a[1] 輸出結果: e
a[1:4] 輸出結果: ell
H 在變數 a 中
M 不在變數 a 中
\n
\n

Python 字元串格式化

Python 支持格式化字元串的輸出 。儘管這樣可能會用到非常複雜的表達式,但最基本的用法是將一個值插入到一個有字元串格式符 %s 的字元串中。

在 Python 中,字元串格式化使用與 C 中 sprintf 函數一樣的語法。

如下實例:

#!/usr/bin/python

print "My name is %s and weight is %d kg!" % ('Zara', 21) 

以上實例輸出結果:

My name is Zara and weight is 21 kg!

python 字元串格式化符號:

符 號描述
%c格式化字元及其ASCII碼
%s格式化字元串
%d格式化整數
%u格式化無符號整型
%o格式化無符號八進位數
%x格式化無符號十六進位數
%X格式化無符號十六進位數(大寫)
%f格式化浮點數字,可指定小數點後的精度
%e用科學計數法格式化浮點數
%E作用同%e,用科學計數法格式化浮點數
%g%f和%e的簡寫
%G%F 和 %E 的簡寫
%p用十六進位數格式化變數的地址

格式化操作符輔助指令:

符號功能
*定義寬度或者小數點精度
用作左對齊
+在正數前面顯示加號( + )
<sp>在正數前面顯示空格
#在八進位數前面顯示零(‘0′),在十六進位前面顯示’0x’或者’0X'(取決於用的是’x’還是’X’)
0顯示的數字前面填充’0’而不是默認的空格
%‘%%’輸出一個單一的’%’
(var)映射變數(字典參數)
m.n.m 是顯示的最小總寬度,n 是小數點後的位數(如果可用的話)

Python2.6 開始,新增了一種格式化字元串的函數 str.format(),它增強了字元串格式化的功能。


Python 三引號

Python 中三引號可以將複雜的字元串進行賦值。

Python 三引號允許一個字元串跨多行,字元串中可以包含換行符、製表符以及其他特殊字元。

三引號的語法是一對連續的單引號或者雙引號(通常都是成對的用)。

 >>> hi = '''hi 
there'''
>>> hi   # repr()
'hi\nthere'
>>> print hi  # str()
hi 
there  

三引號讓程序員從引號和特殊字元串的泥潭裡面解脫出來,自始至終保持一小塊字元串的格式是所謂的WYSIWYG(所見即所得)格式的。

一個典型的用例是,當你需要一塊HTML或者SQL時,這時當用三引號標記,使用傳統的轉義字元體系將十分費神。

 errHTML = '''
<HTML><HEAD><TITLE>
Friends CGI Demo</TITLE></HEAD>
<BODY><H3>ERROR</H3>
<B>%s</B><P>
<FORM><INPUT TYPE=button VALUE=Back
ONCLICK="window.history.back()"></FORM>
</BODY></HTML>
'''
cursor.execute('''
CREATE TABLE users (  
login VARCHAR(8), 
uid INTEGER,
prid INTEGER)
''')

Unicode 字元串

Python 中定義一個 Unicode 字元串和定義一個普通字元串一樣簡單:

>>> u'Hello World !'
u'Hello World !'

引號前小寫的”u”表示這裡創建的是一個 Unicode 字元串。如果你想加入一個特殊字元,可以使用 Python 的 Unicode-Escape 編碼。如下例所示:

>>> u'Hello\u0020World !'
u'Hello World !'

被替換的 \u0020 標識表示在給定位置插入編碼值為 0x0020 的 Unicode 字元(空格符)。


python的字元串內建函數

字元串方法是從python1.6到2.0慢慢加進來的——它們也被加到了Jython中。

這些方法實現了string模塊的大部分方法,如下表所示列出了目前字元串內建支持的方法,所有的方法都包含了對Unicode的支持,有一些甚至是專門用於Unicode的。

方法描述
string.capitalize()把字元串的第一個字元大寫
string.center(width)返回一個原字元串居中,並使用空格填充至長度 width 的新字元串
string.count(str, beg=0, end=len(string))返回 str 在 string 裡面出現的次數,如果 beg 或者 end 指定則返回指定範圍內 str 出現的次數
string.decode(encoding=’UTF-8′, errors=’strict’)以 encoding 指定的編碼格式解碼 string,如果出錯默認報一個 ValueError 的 一 常 , 除非 errors 致定 的 是 ‘ignore’ 或者’replace’
string.encode(encoding=’UTF-8′, errors=’strict’)以 encoding 指定的編碼格式編碼 string,如果出錯默認報一個ValueError 的異常,除非 errors 指定的是’ignore’或者’replace’
string.endswith(obj, beg=0, end=len(string))檢查字元串是否以 obj 結束,如果beg 或者 end 指定則檢查指定的範圍內是否以 obj 結束,如果是,返回 True,否則返回 False.
string.expandtabs(tabsize=8)把字元串 string 中的 tab 符號轉為空格,tab 符號默認的空格數是 8。
string.find(str, beg=0, end=len(string))檢測 str 是否包含在 string 中,如果 beg 和 end 指定範圍,則檢查是否包含在指定範圍內,如果是返回開始的索引值,否則返回-1
string.format()格式化字元串
string.index(str, beg=0, end=len(string))跟find()方法一樣,只不過如果str不在 string中會報一個異常.
string.isalnum()如果 string 至少有一個字元並且所有字元都是字母或數字則返回 True,否則返回 False
string.isalpha()如果 string 至少有一個字元並且所有字元都是字母則返回 True,否則返回 False
string.isdecimal()如果 string 只包含十進位數字則返回 True 否則返回 False.
string.isdigit()如果 string 只包含數字則返回 True 否則返回 False.
string.islower()如果 string 中包含至少一個區分大小寫的字元,並且所有這些(區分大小寫的)字元都是小寫,則返回 True,否則返回 False
string.isnumeric()如果 string 中只包含數字字元,則返回 True,否則返回 False
string.isspace()如果 string 中只包含空格,則返回 True,否則返回 False.
string.istitle()如果 string 是標題化的(見 title())則返回 True,否則返回 False
string.isupper()如果 string 中包含至少一個區分大小寫的字元,並且所有這些(區分大小寫的)字元都是大寫,則返回 True,否則返回 False
string.join(seq)以 string 作為分隔符,將 seq 中所有的元素(的字元串表示)合併為一個新的字元串
string.ljust(width)返回一個原字元串左對齊,並使用空格填充至長度 width 的新字元串
string.lower()轉換 string 中所有大寫字元為小寫.
string.lstrip()截圖 string 左邊的空格
string.maketrans(intab, outtab])maketrans() 方法用於創建字元映射的轉換表,對於接受兩個參數的最簡單的調用方式,第一個參數是字元串,表示需要轉換的字元,第二個參數也是字元串表示轉換的目標。
max(str)返回字元串 str 中最大的字母。
min(str)返回字元串 str 中最小的字母。
string.partition(str)有點像 find()和 split()的結合體,從 str 出現的第一個位置起,把 字 符 串 string 分 成 一 個 3 元 素 的 元 組 (string_pre_str,str,string_post_str),如果 string 中不包含str 則 string_pre_str == string.
string.replace(str1, str2, num=string.count(str1))把 string 中的 str1 替換成 str2,如果 num 指定,則替換不超過 num 次.
string.rfind(str, beg=0,end=len(string) )類似於 find() 函數,返回字元串最後一次出現的位置,如果沒有匹配項則返回 -1。
string.rindex( str, beg=0,end=len(string))類似於 index(),不過是從右邊開始.
string.rjust(width)返回一個原字元串右對齊,並使用空格填充至長度 width 的新字元串
string.rpartition(str)類似於 partition()函數,不過是從右邊開始查找
string.rstrip()刪除 string 字元串末尾的空格.
string.split(str=””, num=string.count(str))以 str 為分隔符切片 string,如果 num 有指定值,則僅分隔 num+1 個子字元串
string.splitlines([keepends])按照行(‘\r’, ‘\r\n’, \n’)分隔,返回一個包含各行作為元素的列表,如果參數 keepends 為 False,不包含換行符,如果為 True,則保留換行符。
string.startswith(obj, beg=0,end=len(string))檢查字元串是否是以 obj 開頭,實則返回 True,否則返回 False。如果beg 和 end 指定值,則在指定範圍內檢查.
string.strip([obj])在 string 上執行 lstrip()和 rstrip()
string.swapcase()翻轉 string 中的大小寫
string.title()返回”標題化”的 string,就是說所有單詞都是以大寫開始,其餘字母均為小寫(見 istitle())
string.translate(str, del=””)根據 str 給出的表(包含 256 個字元)轉換 string 的字元,要過濾掉的字元放到 del 參數中
string.upper()轉換 string 中的小寫字母為大寫
string.zfill(width)返回長度為 width 的字元串,原字元串 string 右對齊,前面填充0

Python 列表(List)

序列是Python中最基本的數據結構。序列中的每個元素都分配一個數字 – 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。

Python有6個序列的內置類型,但最常見的是列表和元組。

序列都可以進行的操作包括索引,切片,加,乘,檢查成員。

此外,Python已經內置確定序列的長度以及確定最大和最小的元素的方法。

列表是最常用的Python數據類型,它可以作為一個方括弧內的逗號分隔值出現。

列表的數據項不需要具有相同的類型

創建一個列表,只要把逗號分隔的不同的數據項使用方括弧括起來即可。如下所示:

list1 = [‘physics’, ‘chemistry’, 1997, 2000] list2 = [1, 2, 3, 4, 5 ] list3 = [“a”, “b”, “c”, “d”]

與字元串的索引一樣,列表索引從0開始。列表可以進行截取、組合等。


訪問列表中的值

使用下標索引來訪問列表中的值,同樣你也可以使用方括弧的形式截取字元,如下所示:

實例(Python 2.0+)

#!/usr/bin/python list1 = [‘physics’, ‘chemistry’, 1997, 2000] list2 = [1, 2, 3, 4, 5, 6, 7 ] print “list1[0]: “, list1[0] print “list2[1:5]: “, list2[1:5]

以上實例輸出結果:

list1[0]:  physics
list2[1:5]:  [2, 3, 4, 5]

更新列表

你可以對列表的數據項進行修改或更新,你也可以使用append()方法來添加列表項,如下所示:

實例(Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- list = [] ## 空列表 list.append(‘Google’) ## 使用 append() 添加元素 list.append(‘Runoob’) print list

注意:我們會在接下來的章節討論append()方法的使用

以上實例輸出結果:

['Google', 'Runoob']

刪除列表元素

可以使用 del 語句來刪除列表的元素,如下實例:

實例(Python 2.0+)

#!/usr/bin/python list1 = [‘physics’, ‘chemistry’, 1997, 2000] print list1 del list1[2] print “After deleting value at index 2 : ” print list1

以上實例輸出結果:

['physics', 'chemistry', 1997, 2000]
After deleting value at index 2 :
['physics', 'chemistry', 2000]

注意:我們會在接下來的章節討論remove()方法的使用


Python列表腳本操作符

列表對 + 和 * 的操作符與字元串相似。+ 號用於組合列表,* 號用於重複列表。

如下所示:

Python 表達式結果描述
len([1, 2, 3])3長度
[1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]組合
[‘Hi!’] * 4[‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’]重複
3 in [1, 2, 3]True元素是否存在於列表中
for x in [1, 2, 3]: print x,1 2 3迭代

Python列表截取

Python 的列表截取實例如下:

>>>L = [‘Google’, ‘Runoob’, ‘Taobao’] >>> L[2] ‘Taobao’ >>> L[-2] ‘Runoob’ >>> L[1:] [‘Runoob’, ‘Taobao’] >>>

描述:

Python 表達式結果描述
L[2]‘Taobao’讀取列表中第三個元素
L[-2]‘Runoob’讀取列表中倒數第二個元素
L[1:][‘Runoob’, ‘Taobao’]從第二個元素開始截取列表

Python列表函數&方法

Python包含以下函數:

序號函數
1cmp(list1, list2)
比較兩個列表的元素
2len(list)
列表元素個數
3max(list)
返回列表元素最大值
4min(list)
返回列表元素最小值
5list(seq)
將元組轉換為列表

Python包含以下方法:

序號方法
1list.append(obj)
在列表末尾添加新的對象
2list.count(obj)
統計某個元素在列表中出現的次數
3list.extend(seq)
在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表)
4list.index(obj)
從列表中找出某個值第一個匹配項的索引位置
5list.insert(index, obj)
將對象插入列表
6list.pop([index=-1])
移除列表中的一個元素(默認最後一個元素),並且返回該元素的值
7list.remove(obj)
移除列表中某個值 的第一個匹配項
8list.reverse()
反向列表中元素
9list.sort(cmp=None, key=None, reverse=False)
對原列表進行排序

由於篇幅有限,今天分享就到這裡了,如果感覺還不過癮還想繼續看的話,可以私信我哦~

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/269587.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-16 13:17
下一篇 2024-12-16 13:17

相關推薦

發表回復

登錄後才能評論