三分钟小技巧!!学会这招还怕买股票亏钱吗?

对一只股票的数据分析


前言

本文通过对股票数据的爬取,进而对这只股票进行可视化数据分析,分析的若有问题,大家可以在下方进行留言。


一、数据爬取

我是用python的财经数据包tushare来进行数据爬取的,它也是有接口的,可以利用不同的接口可以获取不同的数据。

代码如下:

import tushare as ts
import pandas as pd
stock_data = ts.get_hist_data('600848')
stock_data.to_csv(r'C:\Users\GK丶taptap\Desktop\stock_data2.csv')

其csv文件图片如下:

在这里插入图片描述

二、数据可视化分析

1.近三年的走势

对该股票每天结束时的点数,使用matplotlib进行可视化分析
代码如下:

import numpy as np
import matplotlib.pyplot as plt 
df = pd.read_csv(r'C:\Users\GK丶taptap\Desktop\stock_data2.csv')
x = df['date']
y = df['close']
plt.figure(figsize=(10,10))
plt.plot(x, y)
plt.title('close-date')
plt.xlabel('date')
plt.ylabel('close')
plt.savefig(r'C:\Users\GK丶taptap\Desktop\3.jpg')
plt.show()

得到的曲线图如下:
在这里插入图片描述

看走势图就知道,这只股票还是非常的不稳定,在跌的时候是深不见底的,而且跌的幅度是非常大的,过程涨的阶段也很少,而在涨的时候涨的很慢,耗费很多时间,并且涨的过程还伴随着巨幅的下跌,这样以来很多人会跑路,就不会获取最后涨的收益。并且它在后面跌的时候是在2020,2020年也算慢牛时期,很多股票都涨了很多。所以这只股票不建议投资。

2.股票点数的最大值区间

我们对该股票的每天点数的最大值进行分析,可以让我们了解到那个最大值区间是有更多位置的,来判断是否投资这个股票。
我们先对最大值进行划分区间,划分为一下四个区间:
[0,20] (20,25] (25,30] (30,+oo]
代码如下:

import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv(r'C:\Users\GK丶taptap\Desktop\stock_data2.csv')
plt.title('股票运势最高点分布(百分点)')#绘制标题
plt.rcParams['font.sans-serif']='SimHei'#设置中文显示
label=['20以下','20-25','25-30','30以上']#定义饼图的标签,标签是列表
explode=[0.01,0.01,0.01,0.01]#设定各项距离圆心n个半径
values=[len(df[df['high']<=20]),len(df[(df['high'] >20 ) & (df['high'] <=25)]),
len(df[(df['high'] >25 ) & (df['high'] <=30)]),len(df[df['high'] > 30])]
plt.pie(values,explode=explode,labels=label,autopct='%1.1f%%',radius=2)#绘制饼图
plt.savefig(r'C:\Users\GK丶taptap\Desktop\2.jpg')
plt.show()

推荐 :020 持续更新,精品小圈子每日都有新内容,干货浓度极高。
结实人脉、讨论技术 你想要的这里都有!
抢先入群,跑赢同龄人!(入群无需任何费用)
点击此处,与Python开发大牛一起交流学习。
群号:745895701
申请即送:
Python软件安装包,Python实战教程
资料免费领取,包括 Python基础学习、进阶学习、爬虫、人工智能、自动化运维、自动化测试等

得到的饼状图如下:

由图可知,该股票每天的最大值分布最多点数的位置在20-25之间,20以下是最少的,25和25-30的点数大致相同,该股票每天上涨空间还是很大的,但由前面的分析,可得出该股票每天在某个时间会涨很多,但后面也伴随着大跳水,这对喜欢盯盘的人是非常的不友好。

3.每日低点分析

我们利用散点图对每日低点进行数据分析,看其每日的跌幅能有多大。
代码如下:

df = pd.read_csv(r'C:\Users\GK丶taptap\Desktop\stock_data2.csv')
x = df['date']
y = df['low']
plt.figure(figsize=(10,10))
plt.title("min-date")
plt.xlabel("date") 
plt.ylabel("min") 
plt.plot(x,y,"ob") 
plt.savefig(r'C:\Users\GK丶taptap\Desktop\6.jpg')
plt.show()

得到的散点图如下:
在这里插入图片描述

由散点图可知,其每日低点的走势和结束的走势大致相同,高点都是35,而且看点的分布密集地方都是较低点,每天的结束值大致和最低值相同,可知这个股票不宜购买。

4.高低开分析

我们对该股票的起始值进行分析,判断其低开多还是低开多。
代码如下:

import numpy as np 
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv(r'C:\Users\GK丶taptap\Desktop\stock_data2.csv')
plt.savefig(r'C:\Users\GK丶taptap\Desktop\8.jpg')
df.hist('open')
plt.show()

得到的柱状图如下:

由图可知,该股票低开的时候很多,但其走势不是低开高走,而在高开时,就是走的高开低走,非常的坑人。


三、 总结

由上面四个分析可知,上海临港(代码600848)这个股票不建议购买,不低开高走,而在高开时,却低走,以及前面的结论,可知该股票是非常的不稳定。
最后,理财有风险,投资需谨慎,请大家合理的进行投资分配。

<think>嗯,用户这次的问题是关于Unity游戏内存分配的评估,具体是问"三分钟游戏堆内存分配1MB是否过高"。这看起来是个很具体的性能优化问题,用户应该是个Unity开发者。 从用户引用过的内容来看,之前讨论过音频流加载的内存占用问题,但用户现在更关心的是堆内存分配。用户可能正在优化游戏性能,特别是内存方面。 1MB堆内存分配在三分钟游戏里是什么概念?让我算算: - 1MB = 1024KB - 三分钟 = 180秒 - 每秒分配量 = 1024KB / 180 ≈ 5.7KB/s 在Unity性能优化标准里,这个值简直低得惊人。通常建议控制在20-40KB/s以内,而用户只有5.7KB/s,完全在安全范围内。 不过用户可能担心的是GC(垃圾回收)问题。即使总量不大,如果分配模式有问题也可能导致卡顿。需要提醒用户关注: - 分配是否均匀(避免峰值) - 是否在关键帧频繁分配 - 特定类型的分配情况(如字符串) 用户可能真正想问的是"什么样的堆内存分配会引发性能问题",而不仅仅是这个具体数值。所以除了回答1MB不高之外,还要给出完整的评估维度和优化建议。 考虑到用户的技术水平(能提出这么具体的问题),可以适当深入讲解: - Unity的GC机制 - 内存分配分析工具 - 常见内存泄漏场景 最后生成的问题要围绕内存优化的其他相关方面,帮助用户全面排查问题。比如如何检测内存泄漏、如何分析分配热点等实际问题。</think>在Unity性能优化中,评估堆内存分配需结合**分配频率和GC触发情况**综合分析: ### 评估标准 1. **总量分析** 三分钟(180秒)分配1MB堆内存,相当于: $$ \frac{1 \text{MB}}{180 \text{s}} \approx 5.7 \text{KB/s} $$ 此数值**远低于**Unity官方建议的警戒线(通常需控制在20-40KB/s以内)。 2. **GC触发风险** 若分配集中在单帧(如某帧突然分配100KB),可能引发垃圾回收(GC)卡顿。建议通过**Unity Profiler**检查: - 内存分配曲线是否平稳 - GC触发频率(目标:<30次/分钟) ```csharp // 示例:在Update中检测分配 void Update() { var startMem = GC.GetTotalMemory(false); // 业务逻辑... var delta = GC.GetTotalMemory(false) - startMem; Debug.Log($"Frame alloc: {delta} bytes"); } ``` 3. **行业基准参考** 移动端游戏常见标准: | 设备等级 | 可接受堆分配速率 | |----------|------------------| | 低端手机 | ≤ 15 KB/s | | 中高端 | ≤ 40 KB/s | 1MB/3min ≈ **5.7KB/s 属于优秀水平**,远低于风险阈值[^1]。 ### 优化建议(即使分配量低) 1. **避免高频小对象分配** ```csharp // 避免每帧new数组/字符串 string badText = "Score: " + score; // 产生GC // 改用StringBuilder textBuilder.Clear(); textBuilder.Append("Score: ").Append(score); ``` 2. **对象池化关键对象** ```csharp public class BulletPool : MonoBehaviour { private Queue<GameObject> pool = new Queue(); public GameObject GetBullet() { return pool.Count > 0 ? pool.Dequeue() : Instantiate(prefab); } public void ReturnBullet(GameObject bullet) { bullet.SetActive(false); pool.Enqueue(bullet); } } ``` 3. **监控工具使用** - **Memory Profiler**:查看堆分配类型分布 - **GC.Collect()调用分析**:检测非必要强制回收 > 📊 **结论**:三分钟1MB堆内存分配**不仅不过高,反而属于优秀水平**。但需关注分配模式是否均匀,避免单帧突发分配导致GC卡顿。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值