python中的numpy模塊
㈠ 圖解python中數據分析工具包:Numpy
numpy是我學習python遇到的第一個第三方工具包,它可以讓我們快速上手數據分析。numpy提供了向量和矩陣計算和處理的大部分介面。目前很多python的基礎工具包都是基於numpy開發而來,比如 scikit-learn, SciPy, pandas, 還有 tensorflow。 numpy可以處理表格、圖像、文本等數據,極大地方便我們處理和分析數據。本文主要內容來自於Jay Alammar的一篇文章以及自己學習記錄。
原文地址: https://jalammar.github.io/visual-numpy/
使用過程中,如果希望 Numpy 能創建並初始化數組的值, Numpy 提供了 ones()、zeros() 和 random.random() 等方法。只需傳遞希望生成的元素數量(大小)即可:
還可以進行如下操作:
一般,需要數組和單個數字之間也可以進行運算操作(即向量和標量之間的運算)。比如說 data * 1.6 ,numpy利用一個叫做廣播機制(broadcasting)的概念實現了這一運算。:
我們可以通過索引對numpy數據獲取任意位置數據或者對數據切片
我們可以通過numpy自帶的函數對數據進行一些想要的聚合計算,比如min、max 和 sum ,還可以使用 mean 得到平均值,使用 prod 得到所有元素的乘積,使用 std 得到標准差等等。
上述操作不僅可以應用於單維度數據,還可以用於多維度數據{(矩陣)。
同樣可以使用ones()、zeros() 和 random.random()創建矩陣,只要寫入一個描述矩陣維數的元組即可:
numpy還可以處理更高維度的數據:
創建更高維度數據只需要在創建時,在參數中增加一個維度值即可:
根據數組中數值是否滿足條件,輸出為True或False.
希望得到滿足條件的索引,用np.where函數實現.
根據索引得到對應位置的值.
np.where也可以接受另兩個可選擇的參數a和b。當條件滿足時,輸出a,反之輸出b.
獲取數組最大值和最小值的索引可以使用np.argmax和np.argmin.
1、numpy.tofile()和numpy.fromfile()
保存為二進制格式,但是不保存數組形狀和數據類型, 即都壓縮為一維的數組,需要自己記錄數據的形狀,讀取的時候再reshape.
2、numpy.save() 和 numpy.load()
保存為二進制格式,保存數組形狀和數據類型, 不需要進行reshape
實例:
3、numpy.savetxt()和numpy.loadtxt()
np.savetxt(fname,array,fmt=』%.18e』,delimiter=None)
Parameter解釋:
array:待存入文件的數組。
fmt:寫入文件的格式
實例:
㈡ python(pandas模塊)
1.什麼是pandas? numpy模塊和pandas模塊都是用於處理數據的模塊。 numpy主要用於針對數組進行統計計算,處理數字數據比較方便。 pandas除了可以處理數字數據,還可...
㈢ python基礎2:隨機數生成—random模塊、numpy中的random函數
在Python中可以用於隨機數生成的有兩種主要途徑,一是random模塊,另一個是numpy庫中random函數。
在我們日常使用中,如果是為了得到隨機的單個數,多考慮random模塊;如果是為了得到隨機小數或者整數的矩陣,就多考慮numpy中的random函數,當然numpy也可以的到隨機的單個數
一、random模塊
二、numpy庫中random函數
random模塊中將近有7個函數都是可以用來生成隨機數的:
作用:隨機生成一個 [0,1) 的浮點數
作用:隨機生成一個 [a,b) 的浮點數
作用:隨機生成一個 [a,b] 的整數
作用:從列表,元組,字元串、集合(可用於for循環的數據類型)中隨機選擇一個元素
作用:在生成的<以a為始,每step遞增,以b為終>這樣的一個整數序列中隨機選擇一個數
作用:打亂一個列表的元素順序
從序列population中隨機取出k個數;population的類型可以是列表、元組、集合、字元串;
在Numpy庫中,常用使用np.random.rand()、np.random.randn()和np.random.randint()隨機函數。
作用:返回一個或一組服從標准正態分布的隨機樣本值
備註:標准正態分布是以0為均數、以1為標准差的正態分布,記為N(0,1)。對應的正態分布曲線如下所示,即
作用:使用方法與np.random.randn()函數相同 ,通過本函數可以返回一個或一組服從「0~1」均勻分布的隨機樣本值。隨機樣本取值范圍是[0,1),不包括1
numpy.random.randint(low, high=None, size=None, dtype='l')
輸入:
low—–為最小值
high—-為最大值
size—–為數組維度大小
dtype—為數據類型,默認的數據類型是np.int。
作用: 返回隨機整數或整型數組,范圍區間為[low,high),包含low,不包含high; high沒有填寫時,默認生成隨機數的范圍是[0,low
np.random.random([size])
作用:生成[0,1)之間的浮點數,與np.random.rand()功能類似
np.random.choice(a,[ size, replace, p])
參考文檔1: 【python】numpy之random庫簡單的隨機數據生成.rand()、.randint()、.randn()、.random()等(一)
參考文檔2: Python中隨機數的生成
參考文檔3: numpy.random模塊常用函數
終於寫完了,我以為它很簡單的………………預計1小時,結果寫了2.5小時
㈣ python中怎樣安裝numpy模塊
1.在python官網https://pypi.python.org/pypi/numpy中找到安裝的python版本對應的numpy版本。
例如:
python版本是
㈤ python數據分析模塊:numpy、pandas全解
一維數組情況:
二維數組情況:
3參數情況:
2參數情況:
1參數情況:
一維情況:
二維情況:
一維情況:
二維情況:
一維情況:
二維情況:第三個參數指定維度
只查看行數、或者列數
逗號隔開兩個索引
某些行
某些列
可以看出append()函數在二維數組中添加元素,結果轉為了一維數組。
那怎麼保持二維數組呢?可以設置axis參數按行或者按列添加
可以看出先把二維數組降成了一維數組,再在索引為1的位置添加元素。
那麼怎麼保持在二維添加元素呢? 同樣設置axis參數
也分按行和按列刪除
標記缺失值: isnan()函數
補充缺失值:
同樣axis參數可以指定拼接按行還是按列
2. hstack()函數:以水平堆疊的方式拼接數組
3. vstack()函數:以垂直堆疊的方式拼接數組
第二個參數還可以是數組,指定拆分的位置
hsplit()函數:橫向拆成幾個數組
vsplit()函數:縱向拆成幾個數組
數組與數組之間的運算
數組與數值的運算
可以指定整個數組求和,還是按行或者按列
axis=0:每一列的元素求和
axis=1:每一行的元素求和
axis=0:每一列求均值
axis=1:每一行求均值
axis=0:每一列求最大值
axis=1:每一行求最大值
pandas有兩個重要的數據結構對象:Series和DataFrame。
Series是創建一個一維數組對象,會自動生成行標簽。
會自動生成行列標簽
也可以用字典形式生成數據
在用字典生成數據的基礎上,同時指定行標簽
例如對下表的數據進行讀取
4月是第四個表,我們應把sheet_name參數指定為3;因為索引是從0開始的。
可以看出read_excel()函數自動創建了一個DataFrame對象,同時自動把第一行數據當做列標簽。
可以看出不給出header參數時,該參數默認為0。
header=1時結果如下:
header=None時結果如下:
index_col=0時,第0列為列標簽
index_col=0時
usecols=[2]:指定第二列
指定多列
數據如下:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-j1SHxY8y-1637655972909)(C: ypora-user-imagesimage-20211114192949607.png)]
nrows=3時
head()函數中參數為空默認前5行
指定head(3)時如下
numpy模塊也是shape
查看特定列的書庫類型
特定列數據類型轉換
先查看一下所有數據
與單行相比,結果顯示的格式不一樣了
iloc()挑選:
或者給出區間
挑選數據要麼標簽,要麼索引挑選
或者
或者寫成區間
標簽挑選
或者索引挑選
先查看一下數據
或者用字典一對一修改
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-a6QKIoie-1637655972912)(C: ypora-user-imagesimage-20211123110431201.png)]
isin()函數查看錶中是否有該值
查看特定列是否有該值
可以看出上述代碼並沒有替換,那怎麼替換呢?
末尾插入一列
指定插入到哪列
axis參數可以指定刪除行還是刪除列
指定標簽刪除
指定索引刪除
方法三
指定行標簽刪除
指定索引刪除
方法三:
先查看所有數據
info()函數查看數據類型,還可以查看是否有缺失值
isnull()函數查看是否有缺失值
在numpy模塊中用isnan()函數
刪除有缺失值的行
刪除整行都為缺失值的行: 需要指定how參數
不同列的缺失值設置不同的填充值
默認保留第一個重復值所在的行,刪除其他重復值所在的行
保留第一個重復值所在的行
保留最後一個重復值所在的行
是重復的就刪除
降序如下
參數指定first時,表示在數據有重復值時,越先出現的數據排名越靠前
獲取產品為單肩包的行數據
獲取數量>60的行數據
獲取產品為單肩包 且 數量>60 的行數據
獲取產品為單肩包 或 數量>60 的行數據
stack()函數轉換成樹形結構
how參數指定外連接
on參數指定按哪一列合並
concat()函數採用 全連接 的方式,沒有的數設置為缺失值
重置行標簽
效果與concat()一樣
末尾添加行元素
指定列求和
指定列求均值
指定列求最值
獲取單列的
corr()函數獲取相關系數
獲取指定列與其他列的相關系數
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-46g9qgQw-1637655972913)(C: ypora-user-imagesimage-20211123135643804.png)]
groupby()函數返回的是一個DataFrameBy對象,該對象包含分組後的數據,但是不能直觀地顯示出來。
分組後獲取指定列的匯總情況
獲取多列的匯總情況
獲取多列的情況
ta = pd.read_excel(『相關性分析.xlsx』)
print(data)
corr()函數獲取相關系數
獲取指定列與其他列的相關系數
[外鏈圖片轉存中…(img-46g9qgQw-1637655972913)]
groupby()函數返回的是一個DataFrameBy對象,該對象包含分組後的數據,但是不能直觀地顯示出來。
分組後獲取指定列的匯總情況
獲取多列的匯總情況
獲取多列的情況
㈥ Python,的numpy模塊中有沒有 階乘函數
有階乘函數,Numpy中,mat必須是2維的,但是array可以是多維的(1D,2D,3D····ND). Matrix是Array的一個小的分支,包含於Array。所以matrix 擁有array的所有特性。
在numpy中matrix的主要優勢是:相對簡單的乘法運算符號。例如,a和b是兩個matrices,那麼a*b,就是矩陣積。
若a=mat([1,2,3])是矩陣,則 a.A 則轉換成了數組,反之,a.M則轉換成了矩陣。
(6)python中的numpy模塊擴展閱讀:
常用的Numpy運算:
取矩陣中的某一行ss[1,:]或該行的某兩列ss[1,0:2]
將數組轉換成矩陣randMat=mat(random.rand(4,4))
矩陣求逆randMat.I
單位陣eye(4)
零矩陣zeros((x,y))建立x行y列的零矩陣。
最大值和最小值a.max(),a.min(),而a.max(0)表示按列選取每列的最大值。最大/小元素的下標a.argmax(),a.argmin()
#作為方法x.sum() #所有元素相加x.sum(axis=0) #按列相加x.sum(axis=1) #按行相加#作為函數sum(a,axis=0)ss.mean()
mean(a,axis=0(或1)) #按列或行求均值var(a)var(a,axis=0(或1)) #按列或行求方差。
std(a)std(a,axis=0(或1)) #按列或行求標准差ss.T或ss.transpose() #轉置。
㈦ python(pandas模塊)
Pandas是Python的一個數據分析包,最初由AQR Capital
Management於2008年4月開發,並於2009年底開源出來,目前由專注於Python數據包開發的Pydata開發team繼續開發和維護,屬於PyData項目的一部分,pandas最初被作為金融數據分析工具而開發出來,因此pandas為時間序列分析提供了很好的支持。
Pandas的名稱來自於面板數據和python數據分析。panel
data是經濟學中關於多維數據集的一個術語,在Pandas中也提供了panel的數據類型。
Pandas數據結構:
Series:一維數組,與numpy中的一維array類似。二者與Python基本的數據結構list相近,Series如今能保存不同種數據類型,字元串、boolean值、數字等都能保存在series中。
Time-series:以時間為索引的series。
DataFrame:二維的表格型數據結構,很多功能與R中的data.frame類似,可以將DataFrame理解為Series的容器。
Panel :三維的數組,可以理解為DataFrame的容器。
Panel4D:是像Panel一樣的4維數據容器。
PanelND:擁有factory集合,可以創建像Panel4D一樣N維命名容器的模塊。