python之numpy处理股票数据
  kIM7GUNpnV3x 2023年11月22日 23 0

一 概述

Numpy是一个最重要的一个基于多维数组对象,即ndarray对象,该对象具有矢量算数运算能力和复杂的广播能力,可以执行一些科学计算。它的常用属性如下表所示:

属性

说明

ndim

数组的维度,如一维、二维、三维等

shape

数组的形状,如一个5行4列的数组,它的shape属性为(5,4)

size

数组元素的总个数,等于shape属性中的数组元素乘积,如7行4列的数组元素总个数为28个。

dtype

数组中元素的类型对象

itemsize

数组中元素的字节大小,如元素类型为int64的数组有8个(64/8)字节

二:具体实例

import numpy as np
# 定义函数将读取到的日期由“日-月-年”转换为“年-月-日”
def dmy2ymd(dmy):
    dmy = dmy.decode('utf-8')
    ymd = '-'.join(dmy.split('-')[::-1])
    return ymd
# 1.读取股票数据,包括日期、开盘价、最高价、最低价、收盘价、成交量
# dates, opening_prices, hightest_prices, lowest_prices, closing_prices, volume = np.loadtxt('appl.csv',delimiter=',',usecols=(1, 3, 4, 5, 6, 7),unpack=True,dtype = 'M8[D],f8,f8,f8,f8,f8',converters={1:dmy2ymd})
dates, opening_prices, hightest_prices, lowest_prices, closing_prices, volume = np.loadtxt(
    'aapl.csv',delimiter=',', usecols=(1, 3, 4, 5, 6, 7), unpack=True,dtype='M8[D],f8,f8,f8,f8,f8',converters={1: dmy2ymd})
print("日期:",dates)
print("开盘价:",opening_prices)
print("最高价",hightest_prices)
print("最低价",lowest_prices)
print("收盘价",closing_prices)
print("成交量",volume)

# 2.计算收盘价的成交量加权平均价格
volume_avg_prices = np.average(closing_prices,weights=volume)
print("成交量加权平均价格为:",volume_avg_prices)

#3.计算时间的加权平均价格
print("成交量加权平均价格:",volume_avg_prices)

# 首先将时间转换为整型
days = dates.astype(int)
time_avg_prices = np.average(closing_prices, weights=days)
print("时间加权平均价格:",time_avg_prices)

# 4计算最高价的最大价格及最大价格的对应日期
hight_index =np.argmax(hightest_prices)
print("最高价的最高价格:%s"% hightest_prices[hight_index])
print("最大价格对应的日期:%s" % dates[hight_index])

# 5。计算最低价的最小价格以及最小价格对应的日期
lowest_index = np.argmin(lowest_prices)
print("最低价的最小价格:%s"%lowest_prices[lowest_index])
print("最低价格对应的日期:%s"%dates[lowest_index])

#6 计算最高价和最低价的波动情况(最大-最小)
hightest_ptp = np.ptp(hightest_prices)
lowest_ptp = np.ptp(lowest_prices)
print("最高价的极差:%s"%hightest_ptp)
print("最低价的极差:%s" %lowest_ptp)

# 计算收盘价的中位数
closing_median = np.median(closing_prices)
print("收盘价中位数:%s"%closing_median)

# 通过卷积计算收盘价的5日移动平均值和10日移动平均值
sma5_conv = np.ones(5) / 5
sma5 = np.convolve(closing_prices,sma5_conv,'valid')
print("收盘价5日移动平均值:%s"%sma5)
sma10_conv = np.ones(10) / 10
sma10 = np.convolve(closing_prices,sma10_conv,'valid')
print("收盘价10日移动平均值:%s"%sma10)

                python之numpy处理股票数据_中位数




【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月22日 0

暂无评论

推荐阅读
  vxoexqgjyiCS   2023年11月25日   19   0   0 linuxbash数组
  9JCEeX0Eg8g4   2023年11月22日   21   0   0 堆排序子节点数组
  3n45YYmVLV9P   2023年11月13日   52   0   0 指针变量运算符数组
kIM7GUNpnV3x