首页 > 编程语言 > python之numpy处理股票数据

python之numpy处理股票数据

时间:2023-11-19 13:01:22浏览次数:41  
标签:prices lowest f8 python 处理 np print closing numpy

一 概述

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处理股票数据_中位数




标签:prices,lowest,f8,python,处理,np,print,closing,numpy
From: https://blog.51cto.com/u_15912723/8472121

相关文章

  • C# 使用执行cmd命令遇到俄语乱码处理
     设置执行cmd命令的ProcessStartInfo对象编码使用System.Text.Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);注册更多字符编码。通过上面的方式,如果把语言项的Beta版:使用UnicodeUTF-8提供全球语言支持的选择去掉则正常。但是该功能用于修复日志输出还有......
  • sql注入靶场问题处理2
    一、问题报错FailedtoconnecttoMySQL:Accessdeniedforuser'root'@'localhost'(usingpassword:YES)Unabletoconnecttothedatabase:security二、问题解决2.1问题分析看着和用户名和密码相关,找到对应数据库文件位置修改数据库密码 三、访问测试问题解决......
  • C# 22H2之后的windows版本使用SetDynamicTimeZoneInformation设置时区失败处理
    使用SetDynamicTimeZoneInformation设置时区返回false,设置失败。使用PowerShell设置Set-TimeZone成功。///<summary>///设置本地时区///参数取值"ChinaStandardTime",即可设置为中国时区///</summary>///<paramname="timeZoneId"></param>///<retur......
  • sql注入靶场问题处理
    一、问题报错Fataleror:UncanghtEmrorCaltomdenedfmctionmysg,.comectmCphpstndyproWWWsgh-abs-mastersgh-labs-master'sg-comectionssg-comectphp;6Stacktrace:#C:ppstudyproWWWsgf-labs-mastersgh-labs-masterles-1indexphp(15):inchde0#1ma;t......
  • 如何使用 Python 爬取天气预报网站的内容,并通过邮件发送爬取结果到指定邮箱地址
    本文是作者参加腾讯云社区选题互换赛解答的一道题目。题目为:如何使用Python爬取网页(例如天气,每日问好等等)出题者的动机是:每天早上要和妹子说早安,想要做个定时任务,每天早上能自动爬取天气,发送天气问好邮件,希望大神支招。面对这个题目,我们可以将其拆解成若干个小任务:使用Pytho......
  • jdk8 Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等10种最常用方
    jdk8Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等10种最常用方法......
  • 使用 ChatGPT 帮助小学生编程入门系列之二:使用 Python 编程发送电子邮件
    本系列前一篇文章,我们已经介绍了如何使用Python编写一段代码,将搜索引擎上找到的天气预报网站上的信息,读取到本地:使用ChatGPT帮助小学生编程入门系列之一:Python编程读取和解析天气预报网页上的数据本文我们再进一步,目标是把一段文本,通过Python发送到指定的邮箱去。学会......
  • python踩坑记录之import和module
    1.问题重现最近开发时需要将一个别人的python项目作为submodule引入,调用的时候遇到了奇怪的问题,最后定位到问题是import导致的。首先对问题做一个说明。项目结构如下:Project/main.pysubmodule/__init__.pyhandler.pytools.py导致问题的......
  • 洛谷 B2006 地球人口承载力估计(Python3)
    这题难点在理解题意。没有任何技术含量:(题目分析:1.“可持续发展”到底什么意思?Makeendsmeet.也就是说能养活的那些人一年消耗的等于地球一年产生的。2.题中为什么要给x,a,y,b?为了求等量关系。注意,这里"x 亿人生活 a 年,或供 y 亿人生活 b年"用的是地球新生的资源和原有......
  • 使用 ChatGPT 帮助小学生编程入门系列之一:Python 编程读取和解析天气预报网页上的数据
    现在国内小学生也开设了信息技术课,课程内容也涉及到了一些简单的编程实践,比如Scratch和Python.当初这个公众号申请时专门用了我儿子的名字,算是抢注吧,毕竟微信公众号和其他社交媒体平台不一样,不允许重名。我也曾经和我儿子聊过,我今年都40多岁了,这个公众号将来迟早有一天会正......