Numpy and Pandas

安裝

視頻鏈接:https://morvanzhou.github.io/tutorials/data-manipulation/np-pd/

pip install numpy
pip install pandas

Numpy 學習

Numpy屬性

import numpy as nparray = np.array([[1,2,3],[2,3,4]])
print(array)
print('number of dim:',array.ndim)//幾維度
print('shape:',array.shape)//行數列數
print('size:',array.size)//多少個元素

Numpy創建array

impport numpy as npa = np.array([2,23,4],dtype=np.int)
print(a)
print(a.dtype)
a = np.zeros((3,4))//三行四列的0矩陣
a = np.ones((3,4),dtype=np.int16)//三行四列的1矩陣
a = np.empyt((3,4))//三行四列非常接近0的矩陣
a = np.arrange(10,20,2)//[10 12 14 16 18]
a = np.arrange(12).reshape((3,4))//三行四列從0~11
a = np.linspace(1,10,5)//從1到10分成5段的數列,[1. 3.25 5.5 7.75 10.]

Numpy 基礎運算1

import numpy as npa = np.array([10,20,30,40]
b = np.arrange(4)
print(b<3)//[True True True False]
print(b == 3)//[False False False True]c = a + b
print(c)//[10 21 32 43]c = b**2//b的平方,[0 1 4 9]
c = 10*np.sin(a)//正弦d = np.array([[1,1],[0,1] ])
e = np.arrange(4).reshape((2,2))
f = d*e
f_dot = np.dot(e,f)
f_dot_2 = e.dot(f)//運算和f_dot完全相同
print(f)//[[0 1][0 3]]
print(f_dot)//[[2 4][2 3]],只是矩陣的運算a = np.random.random((2,4))//2行4列0~1范圍的隨機值
np.sum(a)//求和
np.min(a)//求最小
np.max(a)//求最大np.sum(a,axis=1)//在行中求和,1代表行,0代表列

Numpy 基礎運算2

import numpy as npA = np.arrange(2,14).reshape((3,4))
np.argmin(A)//最小值的索引
np.argmax(A)//最大值的索引
print(np.argmin(A))//0
np.mean(A)//平均值
A.mean()//平均值
np.median(A)//中位數 7.5
np.cumsum(A)//逐步加進去 [2 5 9 14 20 27 35 44 54 65 77 90]
np.diff(A)//每兩個數之間的差 [[1 1 1][1 1 1][1 1 1]]
np.nonzero(A)//找出非零元素的位置
np.sort(A)//逐行排序
np.transpose(A)//A的轉置
A.T//A的轉置
(A.T).dot(A)//A的轉置與A相乘
np.clip(A,5,9)//小于5的數賦值為5,大于9的數賦值為9,中間值不變
np.mean(A,axis=0)//對列取平均值 [10. 9. 8. 7.]
print(A)

Numpy 索引

import numpy as npA = np.arrange(3,15) 
A[3]//6
A = A.reshape((3,4))
A[2]//[11 12 13 14]
A[1][1]//8
A[1,1]//8
A[2,:]//第2行的所有數
A[1,1:3]//[8 9]for row in A:print(row)//依次打印每一行for column in A.T:print(column)//依次打印每一列A.flatten()//又轉成了一維 [3 4 5 6 7 8 9 10 11 12 13 14]for item in A.flat:print(item)//3-14依次每行打印出來,A.flat返回了一個迭代器

Numpy array 合并

import numpy as npA = np.array([1,1,1])
B = np.array([2,2,2])C = np.vstack((A,B))#[[1 1 1][2 2 2]] vertical stack上寫合并
D = np.hstack((A,B))#[1 1 1 2 2 2] horizontal stack左右合并
print(A.shape,C.shape,D.shape)#(3,)(2,3)(6,)#把橫向的數列轉成縱向的 np.newaxis增加一個維度 還有reshape(3,1)
A[np.newaxis,:].shape #(1,3)
A[:,np.newaxis].shape #(3,1) [[1][1][1]]E = np.concatenate((A,B,B,A),axis=0)#指定方向合并(左右或者上下)

Numpy array 分割

import numpy as npA = np.arange(12).reshape((3,4))
np.split(A,2,axis = 1)#橫向等分成兩段 [array([[0,1][4,5],[8,9]]),array([[2,3][6,7],[10,11]])] 橫向等分成兩段np.array_split(A,3,axis = 1)#橫向不等分成兩段 [array([[0,1],[4,5],[8,9]]),array([[2],[6],[10]]),array([[3],[7],[11]])]np.vsplit(A,3)#縱向分為三段
np.hsplit(A,2)#橫向分為兩段

Numpy copy & deep copy

import numpy as npa = np.arange(4)
b = a
c = a
d = b
a[0] = 1
b is a#True b就是a b[0] = 11  a,b,c,d就是一個變量 引用b = a.copy() # deep copy
b is a # False a和b是兩個變量,沒有關聯

Pandas 學習

Pandas 選擇數據

import pandas as pd
import numpy as npdates = pd.date_range('20130101',periods = 6)
df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates,cloumns=['A','B','C','D'])print(df)#               A   B   C   D#   2013-01-01  0   1   2   3#   2013-01-02  4   5   6   7#   2013-01-03  8   9   10  11#   2013-01-04  12  13  14  15#   2013-01-05  16  17  18  19#   2013-01-06  20  21  22  23print(df.A)#或者 print(df['A'])#   2013-01-01  0   #   2013-01-02  4   #   2013-01-03  8   #   2013-01-04  12  #   2013-01-05  16  #   2013-01-06  20df[0:3],df['20130101':'201304']是同樣的操作# select by label:loc  指定標簽
print(df.loc['20130102'])#A  4#B  5#C  6#D  7print(df.loc[:,['A','B']])#所有行的A列和B列顯示出來
print(df.loc[‘20130102’,['A','B']])#行索引為‘20130102’的A列和B列顯示出來#A  4#B  5#select by position:iloc 指定位
print(df.iloc[3])#打印第四行數據
print(df.iloc[3,1])#打印第四行第二列數據print(df.iloc[1,3,5])#第2,4,6行打印#mixed selection:ix 混合位和標簽
print(df.ix[:3,['A','C']])#0-2行 A/C列#Boolean indexing 通過真值打印
print(df[df.A > 8])# 打印A列中大于8的行的所有信息

Pandas 設置值

import pandas as pd
import numpy as npdates = pd.date_range('20130101',periods = 6)
df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates,cloumns=['A','B','C','D'])df.iloc[2,2] = 111#修改第3行第3列數值
df.iloc['20130101','B'] = 222
df[df.A > 4] = 0# A列大于4的行的所有信息賦值為0
df.A[df.A > 4] = 0# A列大于4的行的A列賦值為0
df['F'] = np.nan #F列值全為NaN(沒有此列就追加此列)
df['E'] = pd.Series([1,2,3,4,5,6],index=pd.date_range('20130101',periods=6))#追加E列,列的值為1,2,3,4,5,6

Pandas處理丟失數據

import pandas as pd
import numpy as npdates = pd.date_range('20130101',periods = 6)
df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates,cloumns=['A','B','C','D'])df.iloc[0,1] = np.nan
df.iloc[1,2] = np.nan#設置第1行2列值為NaNprint(df.dropna(axis=0,how='any'))#丟掉有NaN值的行
#how={'any','all'} any表示只要有就滿足 all表示所有都是才滿足print(df.fillna(value=0))#填充NaN值為0
df.isnull()#df中是否有NaN,列出所有
np.any(df.isnull()) == True#只要有NaN就返回True

Pandas 導入導出

Pandas 合并 concat

Pandas 合并 merge

Pandas plot 畫圖

轉載于:https://www.cnblogs.com/maskerk/p/9977696.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396009.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396009.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396009.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

認證android retrofit,Retrofit之項目介紹

項目介紹官網對retrofit介紹是這是一個"類型安全(type-safe)"的Android/Java http客戶端. 目前retrofit的最新正式版本為1.9.0. 2.0版本預計2015年底發布, 相較于之前版本, 2.0版本在架構上做了很大改變, 本文代碼相關的內容都是基于retrofit2.0-beta2.注: 在編程語言…

層次聚類算法 算法_聚類算法簡介

層次聚類算法 算法Take a look at the image below. It’s a collection of bugs and creepy-crawlies of different shapes and sizes. Take a moment to categorize them by similarity into a number of groups.看看下面的圖片。 它是各種形狀和大小的錯誤和令人毛骨悚然的爬…

.h .dll .lib

.h為對一個函數的聲明引用&#xff0c;include就是聲明某個文件里的函數&#xff08;內只有聲明函數被引用了&#xff09;&#xff0c;編譯時使用 .lib為鏈接時用的&#xff0c;存放的是對于DLL里函數的位置信息等&#xff0c;這樣不必把所有dll里函數都加載到內存里&#xff0…

《機器人學經典教程》——2.2 控制論

本節書摘來異步社區《機器人學經典教程》一書中的第2章&#xff0c;第2.2節&#xff0c;作者&#xff1a;【美】Maja J. Matari?&#xff08;馬婭?馬塔里奇&#xff09;&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 2.2 控制論 隨著控制理論的不斷發展…

嗶哩嗶哩網站前端源碼_分享一個仿制嗶哩嗶哩鏡子網站源碼

我老婆非常喜歡看嗶哩嗶哩&#xff0c;前些天她興奮地和我說嗶哩嗶哩網站有個隱藏的彩蛋&#xff0c;傳送門http://www.ilidilid.com/&#xff0c;我看了下&#xff0c;相當于把鏡子中的網站樣子弄出來了。于是&#xff0c;我尋思著&#xff0c;把自己的博客也弄個這樣的彩蛋&a…

promise-async-await

通常而言&#xff0c;這3個關鍵字 都是用來「優雅」的處理ajax異步請求的 //es6的時候promise誕生&#xff0c;很好的解決了嵌套回調地獄&#xff0c;改良方案為鏈式回調。// es2017的時候誕生了async、await&#xff0c;這下異步直接沒有回調了&#xff0c;像同步一樣爽//沒有…

第一沖刺階段博客檢查

我們檢查的團隊是&#xff1a;紅鳥 ①團隊博客&#xff1a; 該團隊將所有的站立會議均寫到了4月28日的一篇博客中&#xff0c;并且其中任務看板和燃盡圖不全。 ②團隊成員個人博客&#xff1a; 1>張曉晨&#xff1a; 沒有每天個人工作總結。 2>王曉思&#xff1a; 從4.19…

netcore 編譯 html,Asp.Net Core中的@ Html.Action

小編典典更新&#xff1a;從2.2.2版本開始&#xff0c;HttpContextAccessor將上下文保留在一個對象中(據說是為了防止請求之間的混淆)&#xff0c;這會影響當前解決方案…因此&#xff0c;您需要為IHttpContextAccessor(舊版本)提供以下實現并進行注冊作為一個單例&#xff1a;…

《CCIE路由和交換認證考試指南(第5版) (第1卷)》——1.6節虛擬交換系統

本節書摘來自異步社區《CCIE路由和交換認證考試指南&#xff08;第5版&#xff09; &#xff08;第1卷&#xff09;》一書中的第1章&#xff0c;第1.6節虛擬交換系統&#xff0c;作者 【美】Narbik Kocharians&#xff08;那比克 科查理安&#xff09; , 【斯洛伐克】Peter Pal…

機器學習 美股_我如何使用機器學習來探索英美文學之間的差異

機器學習 美股by Sofia Godovykh索非亞戈多維克(Sofia Godovykh) 我如何使用機器學習來探索英美文學之間的差異 (How I used machine learning to explore the differences between British and American literature) As I delved further into English literature to further…

遠程執行漏洞修復方案_請馬上修復!SaltStack遠程命令執行漏洞

【漏洞預警】SaltStack遠程命令執行漏洞(CVE-2020-11651、CVE-2020-11652)2020年5月3日&#xff0c;阿里云應急響應中心監測到近日國外某安全團隊披露了SaltStack存在認證繞過致命令執行漏洞以及目錄遍歷漏洞。漏洞描述SaltStack是基于Python開發的一套C/S架構配置管理工具。國…

kafka部分重要參數配置-broker端參數

broker端參數主要在config/server.properties目錄下設置&#xff1a; 啟動命令&#xff1a;nohup ./kafka-server-start.sh -daemon ../config/server.properties & broker.id參數&#xff1a;Kafka使用唯一的一個整數來標識每個broker&#xff0c;全局唯一&#xff0c;默認…

JS正則表達式大全(整理詳細且實用)

JS正則表達式大全(整理詳細且實用) 作者&#xff1a; 字體&#xff1a;[增加 減小] 類型&#xff1a;轉載 時間&#xff1a;2013-11-14 我要評論 JS正則表達式大全(整理詳細且實用)。需要的朋友可以過來參考下&#xff0c;希望對大家有所幫助正則表達式中的特殊字符 字符 含意…

html設置模塊寬度為200像素,css 寬度(CSS width)

DIV CSS寬度width樣式屬性CSS 寬度是指通過CSS 樣式設置對應div寬度&#xff0c;以下我們了解傳統html寬度、寬度自適應百分比、固定寬度等寬度知識。傳統Html 寬度屬性單詞&#xff1a;width 如width"300";CSS 寬度屬性單詞&#xff1a;width 如width:300px;一、Wid…

我從Stack Overflow對64,000名開發人員的大規模調查中學到的東西

Today Stack Overflow released the results of their 2017 survey of more than 64,000 developers.今天&#xff0c;Stack Overflow發布了他們對64,000多名開發人員的2017年調查結果。 Just like in 2016, I’ve combed through these results and summarized them for you.…

《Node應用程序構建——使用MongoDB和Backbone》一第 1 章 介紹與總覽1.1 打造一個社交網絡...

本節書摘來自異步社區《Node應用程序構建——使用MongoDB和Backbone》一書中的第1章&#xff0c;第1.1節&#xff0c;作者【美】Mike Wilson&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看 第 1 章 介紹與總覽 Node應用程序構建——使用MongoDB和Backbone互…

jquery 樣式獲取設置值_jQuery獲取樣式中的背景顏色屬性值/顏色值

天使用jQuery獲取樣式中的background-color的值時發現在獲取到的顏色值在IE中與Chrome、Firefox顯示的格式不一樣&#xff0c;IE中是以HEX格式顯示#ffff00&#xff0c;而Chrome、Firefox中則是以GRB格式顯示rgb(255,0,0)&#xff0c;由于需要將顏色值存儲到數據庫中&#xff0c…

計算機專業做產品,非計算機專業如何做產品經理?

《硅谷產品實戰》學習筆記 32課這節課中講了計算機專業背景對產品經理的幫助&#xff1a;第一印象&#xff1b;判斷項目復雜度&#xff1b;了解技術可否實現&#xff0c;有何限制&#xff1f;對于沒有計算機專業背景的產品如何彌補專業不足&#xff1f;關于如何判斷項目復雜度在…

_UICreateCGImageFromIOSurface 使用API

上傳的時候&#xff0c;蘋果發送郵件 Non-public API usage: The app references non-public symbols in DUO-LINK 4: _UICreateCGImageFromIOSurfaceIf method names in your source code match the private Apple APIs listed above, altering your method names will help …

匹配一個字符串的開頭和結尾_我如何構建一個應用程序來展示精彩小說的開頭和結尾

匹配一個字符串的開頭和結尾I know sentences. In my decade as a print journalist, I’ve written hundreds of articles for dozens of publications. I’ve dished out more sentences than Judge Judy. But I didn’t study writing or journalism, at least not formally…