日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

数据分析基础教程Numpy指南笔记

發(fā)布時(shí)間:2025/7/25 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据分析基础教程Numpy指南笔记 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

from: http://www.cnblogs.com/yinghuali/p/7226821.html

第2章:Numpy基礎(chǔ)

創(chuàng)建多維數(shù)組
# coding:utf-8
import numpy as np
m=np.array([np.arange(2),np.arange(2)])
print m
print m.shape

?

一維數(shù)組切片和索引
# coding:utf-8
import numpy as np
a=np.arange(9)
print a
print a[3:7]
print a[:7:2] #用下標(biāo)0-7,以2為步長(zhǎng)選取元素

?

多維數(shù)組切片和索引
# coding:utf-8
import numpy as np
b=np.arange(24).reshape(2,3,4)
print b
print '-------------'
print 'b[0,0,0]',b[0,0,0]
print '-------------'
print 'b[:,0,0]',b[:,0,0]
print '-------------'
print 'b[0]',b[0]
print '-------------'
print 'b[0,1]',b[0,1]
print '-------------'
print 'b[0,1,::2]',b[0,1,::2] #上面數(shù)組間隔選取元素
print '-------------'
print 'b[:,1]',b[:,1]
print '-------------'
print 'b[0,:,1]',b[0,:,1]
print '-------------'
print 'b[0,:,-1]',b[0,:,-1] #第一層樓最后一列
print '-------------'
print 'b[0,::-1,-1]',b[0,::-1,-1] #反向選取第一層樓的最后一列的所有房間
print '-------------'
print 'b[0,::2,-1]',b[0,::2,-1] #數(shù)組切片中間隔的選定元素
print '-------------'
print 'b[::-1]',b[::-1] #第一層和第二層交換位置

?

改變數(shù)組的維度
ravel函數(shù)可以完成展平操作 shape 改變維度
# coding:utf-8
import numpy as np
b=np.arange(24).reshape(2,3,4)
print b
a= b.ravel()
print a
a.shape=(6,4) #設(shè)置數(shù)組維度
print a

?

數(shù)組的組合 np.hstack水平組合 np.vstack 垂直組合
# coding:utf-8
import numpy as np
a=np.arange(9).reshape(3,3)
print a
b=2*a
print b
print '--------------------'
print np.hstack((a,b)) #數(shù)組水平組合
print '--------------------'
print np.vstack((a,b)) #垂直組合

?

?

第3章:常用函數(shù)
import numpy as np
i2=np.eye(2) #2*2數(shù)組
np.savetxt(‘eye.txt’,i2) #存儲(chǔ)文件

AAPL,28-01-2011, ,344.17,344.4,333.53,336.1,21144800 #很多數(shù)據(jù)其中一行
...

?


c,v=np.loadtxt(‘data.csv’,delimiter=’,’,usecols=(6,7),unpack=True) #設(shè)置分隔符號(hào)為,usecols的參數(shù)為一個(gè)元組,以獲取第7字段和第8字段的數(shù)據(jù)。upack參數(shù)設(shè)置為True,意思是拆分存儲(chǔ)不同列的數(shù)據(jù)
vwap=np.average(c,weights=v) #以v列的數(shù)據(jù)作為權(quán)重計(jì)算c的平均權(quán)重值
np.mean(c) #計(jì)算c的平均值

時(shí)間加權(quán)平均價(jià)格
t=np.arange(len(c)) #求出行數(shù)
np.average(c,weights=t)

h,l=np.loadtxt(‘data.csv’,delimiter=’,’,usecols=(4,5),unpack=True) #將每日最高價(jià)和最低價(jià)的數(shù)據(jù)載入數(shù)組
np.max(h) #獲取該行最大值
np.min(l) #獲取該行最小值
ptp計(jì)算數(shù)組的取值范圍=max(array)-min(array)
np.ptp(h) np.ptp(l)
np.median(c) 找到中位數(shù)
np.msort(c) 將數(shù)組從小到大排序
np.var(c) 計(jì)算數(shù)組的方差
np.diff(c) 返回由相鄰數(shù)組元素的插值構(gòu)成的數(shù)組
np.std() 返回?cái)?shù)組的標(biāo)準(zhǔn)差
np.where(數(shù)組>0) where函數(shù)可以根據(jù)指定的條件返回所有滿足條件的數(shù)組元素的索引值
strptime() 函數(shù)根據(jù)指定的格式把一個(gè)時(shí)間字符串解析為時(shí)間元組。
converters:數(shù)據(jù)列和轉(zhuǎn)換函數(shù)之間進(jìn)行映射的字典
np.take(數(shù)組,索引) 獲取數(shù)組索引值的元素值

?

x = np.array([[1, 2], [3, 4]])
>>> x.ravel()
array([1, 2, 3, 4])
p52沒(méi)有完
第3章:便捷函數(shù)

np.corrcoef(bhp_returns,vale_returns) 計(jì)算兩個(gè)矩陣的相關(guān)系數(shù)
[[1. 0.67841747
0.67841747 1.]] 右對(duì)角線是相關(guān)系數(shù)

poly=np.polyfi(長(zhǎng)度,差值, )擬合一系列數(shù)據(jù)點(diǎn) 實(shí)際就是一個(gè)函數(shù)
np.polyval(poly,長(zhǎng)度+1) 推斷下一個(gè)值
vals=np.ployval(poly,t)
np.argmax(vals) 函數(shù)最大值
np.argmin(vals) 函數(shù)最小值
np.sign(change) change是數(shù)據(jù)列表 返回對(duì)應(yīng)數(shù)據(jù)正負(fù)號(hào)對(duì)應(yīng)列表
hanning函數(shù)是一個(gè)加權(quán)余弦的窗函數(shù)

?

?

第5章:矩陣和通用函數(shù)
a=np.mat('1 2 3;4 5 6;7 8 9') #創(chuàng)建矩陣 有空格
a.T 矩陣轉(zhuǎn)置
a.I 矩陣求逆
A = np.mat(np.arange(9).reshape(3,3))

?

A = np.eye(2)

?

B=2*A

?

np.bmat('A B;A B')

?

a=np.arange(9)
print np.add.reduce(a) 求和結(jié)果36

a=np.array([2,6,5])
b=np.array([1,2,3])
print np.true_divide(a,b)


數(shù)組相除

a=np.arange(-4,4)
print a%2

?

[1,1,2,3,5,8,13,21]
a=np.matrix([[1,1],[1,0]]) 創(chuàng)建斐波那契數(shù)列矩陣
print (a**4)[0,0] 為5 該數(shù)列第5個(gè)數(shù)


第6章:深入學(xué)習(xí)NumPy模塊
numpy.linalg模塊包含線性代數(shù)的函數(shù),使用這個(gè)模塊可以計(jì)算逆矩陣,求特征值,解線性方程組以及求解行列式。
求逆矩陣
import numpy as np
A=np.mat('0 1 2;1 0 3;4 -3 8')
print A
inverse=np.linalg.inv(A)
print inverse

?

求解線性方程組的解
# coding:utf-8
import numpy as np
A=np.mat('1 -2 1;0 2 -8;-4 5 9')
print A
b=np.array([0,8,-9]) #數(shù)組y
print b
x=np.linalg.solve(A,b)
print x

?

numpy.linalg模塊中,eigvals函數(shù)可以計(jì)算矩陣的特征值
# coding:utf-8
import numpy as np
A=np.mat('3 -2;1 0')
print A
B=np.linalg.eigvals(A)
print B

?

eig函數(shù)求解特征值和特征向量
# coding:utf-8
import numpy as np
A=np.mat('3 -2;1 0')
print A
B=np.linalg.eig(A)
print B

?

奇異值分解
# coding:utf-8
import numpy as np
A=np.mat('4 11 14;8 7 -2')
print A
U,Sigma,V=np.linalg.svd(A,full_matrices=False)
print'U'
print U
print 'Sigma'
print Sigma
print 'V'
print V

?


并非得到中間的奇異值矩陣,得到的是對(duì)角線上的值

矩陣行列式
# coding:utf-8
import numpy as np
A=np.mat('3 4;5 6')
print A
B=np.linalg.det(A)
print B

?


第七章:專用函數(shù)
sort函數(shù)返回排序后的數(shù)組
lexsort 函數(shù)根據(jù)鍵值的字典序進(jìn)行排序
argsort 函數(shù)返回輸入數(shù)組排序后的下標(biāo)
ndarray類的sort方法可對(duì)數(shù)組進(jìn)行原地排序
msort函數(shù)沿著第一個(gè)軸排序
sort_complex函數(shù)對(duì)復(fù)數(shù)按照先實(shí)部后虛部的順序進(jìn)行排序

argmax函數(shù)返回?cái)?shù)組中最大值對(duì)應(yīng)下標(biāo) argmin類似
# coding:utf-8
import numpy as np
a = np.array([2,4,8])
print np.argmax(a)

?

searchsorted函數(shù)為指定的插入值返回一個(gè)在有序數(shù)組中的索引位置
# coding:utf-8
import numpy as np
a = np.arange(5)
print a
indices=np.searchsorted(a,[-2,7])
print indices

?

numpy的extract函數(shù)可以根據(jù)某個(gè)條件從數(shù)組中抽取元素。
使用nonzero函數(shù)抽取數(shù)組中的非零元素
# coding:utf-8
import numpy as np
a = np.arange(7)
print a
condition=(a%2)==0
print 'even numbers',np.extract(condition,a)
print 'Non zero',np.nonzero(a)

?


第9章:使用Matplotlib繪圖
matplotlib.pyplot包中包含了簡(jiǎn)單繪圖功能
使用show函數(shù)顯示

繪制多項(xiàng)式函數(shù)
# coding:utf-8
import numpy as np
import matplotlib.pyplot as plt
func=np.poly1d(np.array([1,2,3,4]).astype(float)) #創(chuàng)建多項(xiàng)式
print func
x=np.linspace(-10,10,30) #在-10和10之間產(chǎn)生30個(gè)均勻分布的值
y=func(x) #創(chuàng)建多項(xiàng)式的值
plt.plot(x,y) #調(diào)用plot函數(shù)
plt.xlabel('x') #使用xlabel函數(shù)添加x軸標(biāo)簽
plt.ylabel('y(x)')
plt.show()

?

總結(jié)

以上是生活随笔為你收集整理的数据分析基础教程Numpy指南笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。