
一直以來,都想學習python數據分析相關的知識,總是拖拖拉拉,包括這次這個分享也是。《利用python進行數據分析 第2版》是一次無意之間在簡書上看到的一個分享,我決定將很詳細。一直都想著可以復現一下。但總有理由,忘記和拖拉。這次我想通過分享的方式來監督自己學習。爭取一周更一次。中間每天都還是要學習,只是周末再分享。 放上原鏈接: https://www.jianshu.com/p/04d180d90a3f 作者在鏈接中放上了書籍,以及相關資源。因為平時雜七雜八的也學了一些,所以這次可能是對書中的部分內容的復現。也可能有我自己想到的內容,內容暫時都還不定。在此感謝原簡書作者SeanCheney的分享。
直接從第二章開始。
第二章 Python語法基礎,IPython和Jupyter Notebooks
我使用的是Jupyter Notebooks進行所有操作
import numpy as np
通過上述語句,導入import后面的包,as 后跟在本次運算中,對那個包取的別名。在Jupyter Notebooks中,輸入完一句后,運行并跳到下一行中,按shift + enter
data = {i : np.random.randn() for i in range(7)}
'''上述語句表示,對data賦值,data是一個字典,一共有7對,每一個值都是由np.random.randn()產出的隨機數。'''
'''導入包的時候,也可以直接導入我們需要的那個函數'''
from numpy.random import randn
data = {i : randn() for i in range(7)}
print(data)
tab補全
這個是在IPython shell 中可以對文件路徑、命名、對象和模塊屬性這些進行文件全路徑的補全 當我輸入到numpy.的時候,按下tab鍵,就可以補全后面的函數。

自省
加上?,就可以顯示出對象的詳細信息。 加上??,就可以顯示出對象的源代碼。

%run命令 這個是可以在IPython中運行另一段代碼,而在jupyter notebook中,這是用%load Ctrl+C 可以打斷正在運行中的代碼。在我目前用到的IDE中,基本上行都是可以用Ctrl+C打斷運行代碼 IPython和jupyter notebook都有一套快捷鍵,在jupyter notebook中,可以參考幫助文檔。

IPython中還有一套魔術命令,但是我一般都不用IPython,所以這一段我就沒細看。有需要的可以去看原作者的帖子內容。 在jupyter notebook中可以隨意復制粘貼,但IPython shell 的風格和cmd較為接近,復制粘貼相對麻煩,可以使用%paste 和%cpaste可以運行剪切板中的代碼,%cpaste在運行的時候會給出一段提示。jupyter notebook中就不能使用這個了。
Python語法基礎
通過縮進表示文檔的語句之間的空間。一般使用四個空格,或者按一下Tab鍵。 在python中,數字、字符串、函數、模塊都可以作為一個對象。同時,在語句中也可以通過#鍵,對每一行內容進行一個注釋。 書中還提到了一個鴨子類型,即只要滿足我們需要功能,那他就是符合我們要求的。這可以去判斷一個對象是不是可以達到我們需要的功能。 Python中,通過=傳遞數組,在=前后的變量對應的內容是一樣的,變量類似指針,同時指向內存的一個內容,改變其中的一個,會影響另一個的值。
a=[1,2,3]
b=a
b
# out:[1,2,3]
a.append(3)
b
# out:[1,2,3,4]
引入
這個可以導入我們之前編輯的文件 可以引用我們在另一個文件確定的函數等等。 這是在同一個文件夾中便捷的some.py文件

import some
some.f(2)
# out:4
print(some.g(3,4))
some.PI
# out:7
# out:3.14159
運算符
具體的內容可以參照這個內容

python中字符串和元祖是不可變的,其余的基本上都是可變的。 Python的標準庫中有?些內建的類型,?于處理數值數據、字符串、布爾值,和?期時間。這些單值類型被稱為標量類型,本書中稱其為標量。

python中的數據類型主要是int和float類型,int類型可以存儲任意大的數。float為浮點數
python中還有字符串,一般是放在' '中間,原始的字符串不能修改,可以通過把一個字符串賦值給另一個值進行修改,但不改變原始值。 可以通過list方法打開字符串,然后就可以進行相關操作了。 有些時候由于字符串中有一些雙斜杠,這個時候可以在字符串前面加一個r,表示字符串只是表示字符串本身。就不會出現轉義等情況了。 編碼和解碼 ,編碼使用encode ,解碼使用decode
a='hallo'
x=list(a)
x
# out:['h', 'a', 'l', 'l', 'o']
m=a.encode('utf-16')
m
# out:b'xffxfehx00ax00lx00lx00ox00'
布爾值,主要是true和false 類型轉換,可以轉換對象的類型,str(),bool(),float()等,可以轉成相關的str,bool,float類型 None 空值 時間函數 datetime
from datetime import datetime, date, time
dt = datetime(2020,1,4,20,00,12)#年月日時分秒
print(dt.date())
print(dt.time())
# out:2020-01-04
# out:20:00:12
dt.strftime('%m/%d/%Y %H:%M')
# out:'01/04/2020 20:00'

控制流: if 語句,主要包括:if ,elif,else for 循環 while語句 pass 語句 range循環:主要是迭代器
三元表達式
value = true-expr if condition else false-expr
# 等價于
if condition:value = true-expr
else:value = false-expr