NumPy基礎(2)--統計分析函數

文件讀寫

一般數據都是以文件的形式進行存儲的,對文件的讀寫是較爲基本的操作。

寫文件(savetxt)

import numpy as np
i2=np.eye(2)# 生成單位數組
print(i2)
np.savetxt('eye.txt',i2) # 指定保存的文件名和數據

讀文件(loadtxt)

c,v=np.loadtxt('data.csv', delimiter=',', usecols=(6,7), unpack=True)#csv文件以逗號作分隔符,usecols爲一個元組,指的是取6到7列,unpack爲Ture時,拆分結果存放到兩個變量中

簡單統計分析

以下面的data.csv中數據爲例,第一列爲股票代碼以標識股票(蘋果公司股票代碼爲
AAPL),第二列爲dd-mm-yyyy格式的日期,第三列爲空,隨後各列依次是開盤價、最高價、最低價和收盤價,最後一列爲當日的成交量。

AAPL,28-01-2011, ,344.17,344.4,333.53,336.1,21144800
AAPL,31-01-2011, ,335.8,340.04,334.3,339.32,13473000
AAPL,01-02-2011, ,341.3,345.65,340.98,345.03,15236800
AAPL,02-02-2011, ,344.45,345.25,343.55,344.32,9242600
AAPL,03-02-2011, ,343.8,344.24,338.55,343.44,14064100
AAPL,04-02-2011, ,343.61,346.7,343.51,346.5,11494200
AAPL,07-02-2011, ,347.89,353.25,347.64,351.88,17322100
AAPL,08-02-2011, ,353.68,355.52,352.15,355.2,13608500
AAPL,09-02-2011, ,355.19,359,354.87,358.16,17240800
AAPL,10-02-2011, ,357.39,360,348,354.54,33162400
AAPL,11-02-2011, ,354.75,357.8,353.54,356.85,13127500
AAPL,14-02-2011, ,356.79,359.48,356.71,359.18,11086200
AAPL,15-02-2011, ,359.19,359.97,357.55,359.9,10149000
AAPL,16-02-2011, ,360.8,364.9,360.5,363.13,17184100
AAPL,17-02-2011, ,357.1,360.27,356.52,358.3,18949000
AAPL,18-02-2011, ,358.21,359.5,349.52,350.56,29144500
AAPL,22-02-2011, ,342.05,345.4,337.72,338.61,31162200
AAPL,23-02-2011, ,338.77,344.64,338.61,342.62,23994700
AAPL,24-02-2011, ,344.02,345.15,338.37,342.88,17853500
AAPL,25-02-2011, ,345.29,348.43,344.8,348.16,13572000
AAPL,28-02-2011, ,351.21,355.05,351.12,353.21,14395400
AAPL,01-03-2011, ,355.47,355.72,347.68,349.31,16290300
AAPL,02-03-2011, ,349.96,354.35,348.4,352.12,21521000
AAPL,03-03-2011, ,357.2,359.79,355.92,359.56,17885200
AAPL,04-03-2011, ,360.07,360.29,357.75,360,16188000
AAPL,07-03-2011, ,361.11,361.67,351.31,355.36,19504300
AAPL,08-03-2011, ,354.91,357.4,352.25,355.76,12718000
AAPL,09-03-2011, ,354.69,354.76,350.6,352.47,16192700
AAPL,10-03-2011, ,349.69,349.77,344.9,346.67,18138800
AAPL,11-03-2011, ,345.4,352.32,345,351.99,16824200

平均值

  1. 算術平均函數
import numpy as np
c,v=np.loadtxt('data.csv', delimiter=',', usecols=(6,7), unpack=True)
print(np.mean(c))
print(np.average(c))

在這裏插入圖片描述
2. 加權平均數函數
average函數可以指定weights參數,指定權重。

import numpy as np
c,v=np.loadtxt('data.csv', delimiter=',', usecols=(6,7), unpack=True)
print(np.mean(c))
#成交量加權平均價格(VWAP)
print(np.average(c, weights=v))

在這裏插入圖片描述

最大值和最小值

import numpy as np
c,v=np.loadtxt('data.csv', delimiter=',', usecols=(6,7), unpack=True)
print(np.max(c)) #最大值
print(np.min(c)) #最小值
print(np.ptp(c)) #最大值與最小值之間的差值,也就是極差

中位數

import numpy as np
c,v=np.loadtxt('data.csv', delimiter=',', usecols=(6,7), unpack=True)
print(np.median(c)) #中位數
#通過排序獲取中間值
sorted=np.msort(c)
n=len(c)
print((sorted[n//2]+sorted[(n-1)//2])/2)

在這裏插入圖片描述

方差

import numpy as np
c,v=np.loadtxt('data.csv', delimiter=',', usecols=(6,7), unpack=True)
print(np.var(c))

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章