python數(shù)據(jù)分析(二)--Numpy

  1. n維數(shù)組對象ndarray
  2. 兩部分組成--數(shù)組內(nèi)容和數(shù)組屬性(數(shù)組類型和數(shù)組維度)
  3. 定義一個數(shù)組方法:a=numpy.array((1,1,1))或者a=numpy.array([1,1,1])生成一個ndarray的數(shù)組a忌堂,ndarray在程序中的別名是array
  4. ndarray對象的屬性
  • a.ndim 秩薯酝、維度的數(shù)量
  • a.shape ndarray對象的尺度,對于矩陣,n行m列
  • a.size 對象元素個數(shù)。n*m
  • dtype 元素類型
  • a.itemsize 對象中每個元素的大小表牢,以字節(jié)為單位
  1. ndarray的元素類型
  • bool 布爾
  • intc 與C中int一致
  • intp 用于索引的整數(shù)
  • int8 字節(jié)長度的整數(shù)
  • int16 16位長度的整數(shù)
  • int32 32位長度的整數(shù)
  • int64 64位
  • unit8 8位無符號整數(shù)
  • unit16
  • unit32
  • unit64
  • float16
  • float32
  • float64
  • complex64 復(fù)數(shù)
  • complex128
  1. ndarray數(shù)組創(chuàng)建
  • 字節(jié)流(raw bytes)中創(chuàng)建數(shù)組
  • 從文件中讀取特定格式蝠检,創(chuàng)建數(shù)組
  • python中列表辣苏、元組創(chuàng)建ndarray數(shù)組
    x= np.array(list/tuple)或者指定類型x=np.array(list/tuple, dtype=np.float32)及穗,不給出類型摧茴,自動判斷
  • Numpy中函數(shù)創(chuàng)建ndarray數(shù)組,如:array拥坛、ones蓬蝶、zeros
    • np.arange(n):從0到n-1的數(shù)組
    • np.ones(shape):全為1尘分,例如np.ones((3,6))
    • np.zeros(shape):全為0
    • np.full(shape,val):根據(jù)shape生成一個數(shù)組猜惋,每個元素都是val
    • np.eye(n):n*n的單位數(shù)矩陣
    • np..ones_like(a):根據(jù)a的形狀生成一個全1的數(shù)組
    • np.zeros_like(a):根據(jù)a生成全0數(shù)組
    • np.full_like(a)
    • np.linspace(1,10培愁,4):根據(jù)起止數(shù)據(jù)等間距地填充數(shù)據(jù)著摔,形成數(shù)組,生成數(shù)組(1,4,7,10)定续,若是np.linspace(1,10,4,endpoint=False)谍咆,生成5個禾锤,排除10,(1,3.25,5.5,7.75)
  1. ndarray的數(shù)組操作
  • np.concatenate():將兩個或多個數(shù)組合并成一個新的數(shù)組
  • .reshape(shape):例如a.reshape((3,8)) 得到的數(shù)組不改變a摹察,生成新的數(shù)組
  • .resize(shape):例如a.resize((3,8))改變了原數(shù)組的行列
  • .swapaxes(ax1,ax2):將數(shù)組n個維度中兩個維度進行調(diào)換
  • .flatten():對數(shù)組進行降維恩掷,返回折疊后的一維數(shù)組,原數(shù)組不變
  • .astype(new_type):類型轉(zhuǎn)化供嚎。例如:a=np.ones((2,3,4),dtype=np.int)黄娘,b=a.astype(np.float)
  • 數(shù)組向列表轉(zhuǎn)化:b=a.tolist(),python基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu):列表
  • 一維數(shù)組索引:a[2],從0開始遞增或者從-1開始遞減
    多維數(shù)組:a[1,2,3]:位置信息,或者a[-1,-2,-3]
  • 3元素切片:a[1:4:2]:含義:起始編號:終止編號:步長
    多元素組切片:a[:,1,-3]克滴,或者a[:逼争,1:3,:]
  1. 數(shù)組運算

    1. 數(shù)組與標量運算:作用于數(shù)組的每一個元素a = a / a.mean()
    2. 一元函數(shù):np.abs(x)劝赔、np.fabs(x)誓焦、np.sqrt(x)、np.square(x)着帽、np.log(x)杂伟、np.log10(x)、np.log2(x)仍翰、np.ceil(x)(不超過元素的整數(shù)值)稿壁、np.floor(x)(小于這個元素的最大整數(shù)值)、np.rint(x)(四舍五入)歉备、np.modf(x)(小數(shù)部分和整數(shù)部分)傅是、np.cos(x)、np.cosh(x)蕾羊、np.exp(x)喧笔、np.sign(x)
    3. 二元函數(shù):加減乘除乘方、np.maximum(x,y) np.fmax()
      np.mod(x,y) np.copysign(x,y)(將數(shù)組y各元素的符號復(fù)制給數(shù)組x對應(yīng)元素) 布爾型運算
  2. adarray數(shù)組與csv文件寫入與讀出:
    注意:csv文件只能有效存取一維數(shù)組和二維數(shù)組

    • 寫入到csv文件中
      np.savetxt(frame,array,fmt='%.18e',delimiter=None)
      frame:文件龟再、字符串或產(chǎn)生器书闸,可以是.gz或者.bz2的壓縮文件,文件名
      array:存入文件的數(shù)組
      fmt:寫入文件的格式:例如:%d %.2f %.18e
      delimiter:分割字符串
      例如:
      a = np.arange(100).reshape(5,20)
      np.savetxt('a.csv',a,fmt='%d',delimiter=',')
      文件保存在當前文件目錄下利凑,我的是在C盤的用戶目錄下浆劲,可以更改
    • 從csv文件中讀出
      np.loadtxt(frame,dtype=np.float,delimiter=None,unpack=False)
      frame:文件名,可以是壓縮文件.gz或者.bz2
      dtype:數(shù)據(jù)類型
      delimiter:分割字符串哀澈,默認位任何空格
      unpack:true牌借,讀入屬性將分別寫入不同變量
  3. 多維數(shù)組的存取
    注意:使用的時候要知道存入文件時數(shù)組的維度和元素類型

    1. 寫到文件中:
      a.tofile(frame,sep='',format='%s')
      frame:文件、字符串
      sep:數(shù)據(jù)分割字符串割按、如果為空串膨报,寫入文件為二進制。
      format:寫入數(shù)據(jù)的格式
      例如:
    a.tofile('b.dat',sep=',',format='%d') //此時文件中為一串有逗號分割的數(shù)字,無分組信息
    
    1. 從文件中讀文件
      np.fromfile(frame,dtype=float,count=-1,sep='')
      count:讀入元素的個數(shù)现柠,-1表示讀入整個文件
      sep:數(shù)據(jù)分割字符串院领、如果為空串,讀取的文件為二進制够吩。
      例如:
      c=np.fromfile('b.dat',dtype=np.int,sep=',') //此時c為一個一維數(shù)組
      可以使用reshape變?yōu)槎嗑S數(shù)組比然。
  4. 便捷的文件存取
    np.save(fname,array) //fname中以.npy為擴展名
    np.savez(fname,array) //fname中以.npz為壓縮擴展名
    np.load(fname)

  5. 隨機數(shù)函數(shù)--random子庫

    • rand(d0,d1,..dn) 根據(jù)d0-dn創(chuàng)建隨機數(shù)數(shù)組,浮點數(shù)[0,1),均勻分布
    • randn(d0,d1,..dn) 根據(jù)d0-dn創(chuàng)建隨機數(shù)數(shù)組周循,標準正態(tài)分布
    • randint(low,high,shape):根據(jù)shape創(chuàng)建隨機整數(shù)或整數(shù)數(shù)組谈秫,范圍是[low,high)
    • seed(s) 隨機數(shù)種子,s是給定的種子值
    a=np.random.randn(3,4,5)  //生成3維矩陣鱼鼓,維數(shù)分別是3拟烫,4,5
    b=np.random.randint(100,200,(3,4))
    
    • shuffle(a) 根據(jù)數(shù)組a的第一軸進行隨機排序迄本,改變數(shù)組a
    • permutation(a) 根據(jù)數(shù)組a的第一軸進行隨機排序硕淑,不改變數(shù)組a
    • choice(a,size,replace,p) 從一維數(shù)組a中以概率p抽取元素,形成size形狀新數(shù)組嘉赎,replace表示是否可以重用元素置媳,默認為true
    • uniform(low,high,size) 產(chǎn)生具有均勻分布的數(shù)組,low起始值公条,high結(jié)束值拇囊,size形狀
    • normal(loc,scale,size) 產(chǎn)生具有正態(tài)分布的數(shù)組,loc均值靶橱,scale標準差寥袭,size形狀
    • poisson(lam,size) 產(chǎn)生具有泊松分布的數(shù)組,lam隨機事件發(fā)生率关霸,size形狀
  6. 統(tǒng)計函數(shù)

    • sum(a,axis=None) :給定軸axis計算和传黄,axis整數(shù)或者元組
    • mean(a,axis=None):給定軸axis計算期望
    • average(a,axis=None,Weight=None) 給定軸axis計算數(shù)組a計算相關(guān)元素的加權(quán)平均值
    • std(a,axis=None) 計算數(shù)組a相關(guān)元素的標準差
    • var(a,axis=None) 計算數(shù)組a相關(guān)元素的方差
    • min(a)
    • argmin(a) 計算數(shù)組a中元素最小值、最大值降一維后下標
    • unravel_index(index,shape) 根據(jù)shape將一維下標index轉(zhuǎn)換成多維下標
    • ptp(a) 計算數(shù)組a中元素最大值和最小值的差
    • median(a) 計算數(shù)組a中元素的中位數(shù)(中值)
  7. 梯度函數(shù)--及斜率
    np.gradient(a):返回元素的梯度队寇,當f為多維時膘掰,返回每個維度梯度

  8. 圖像的數(shù)組表示
    圖像:RGB色彩表示
    PIL庫:具有強大圖像處理能力的第三方庫
    使用:from PIL import Image
    Image是PIL庫中代表一個圖像的類
    im=np.array(Image.open("path+fileName"))
    print(im.shape,im.dtype)
    Image.open("E://Desktop//0.jpg").convert('L')將圖像轉(zhuǎn)化為灰度圖

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市佳遣,隨后出現(xiàn)的幾起案子识埋,更是在濱河造成了極大的恐慌,老刑警劉巖零渐,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窒舟,死亡現(xiàn)場離奇詭異,居然都是意外死亡相恃,警方通過查閱死者的電腦和手機辜纲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拦耐,“玉大人耕腾,你說我怎么就攤上這事∩迸矗” “怎么了扫俺?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長固翰。 經(jīng)常有香客問我狼纬,道長,這世上最難降的妖魔是什么骂际? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任疗琉,我火速辦了婚禮,結(jié)果婚禮上歉铝,老公的妹妹穿的比我還像新娘盈简。我一直安慰自己,他們只是感情好太示,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布柠贤。 她就那樣靜靜地躺著,像睡著了一般类缤。 火紅的嫁衣襯著肌膚如雪臼勉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天餐弱,我揣著相機與錄音宴霸,去河邊找鬼。 笑死膏蚓,一個胖子當著我的面吹牛猖败,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播降允,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼恩闻,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了剧董?” 一聲冷哼從身側(cè)響起幢尚,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎翅楼,沒想到半個月后尉剩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡毅臊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年理茎,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡皂林,死狀恐怖朗鸠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情础倍,我是刑警寧澤烛占,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站沟启,受9級特大地震影響忆家,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜德迹,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一芽卿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧胳搞,春花似錦蹬竖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至芽腾,卻和暖如春旦装,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背摊滔。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工阴绢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人艰躺。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓呻袭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親腺兴。 傳聞我的和親對象是個殘疾皇子左电,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容