专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

在Python中使用深度学习LSTM模型预测股票价格

  长短期记忆(LSTM)是一种特殊类型的循环神经网络(RNN),它可以使用记忆细胞随时间保留重要信息。
  LSTM的这一特性使其成为学习相互依赖的序列的绝佳算法,可以帮助构建语言翻译、销售时间序列、聊天机器人、自动更正、下一个单词建议等解决方案。
  在这个案例研究中,我将展示如何使用LSTM来学习股票价格的模式。使用此模板,您将能够根据过去10天的价格预测明天的股票价格。拉取历史股价数据
  要提取任何股票的数据,我们可以使用名为nsepy的库
  如果您想对任何其他股票执行此操作,只需使用该公司的股票市场代码,就像我在这里为Infosys使用INFY一样。importpandasaspdimportnumpyasnp从numpy数组中删除科学记数法np。setprintoptions(suppressTrue)安装nsepy库以获取股票价格!pipinstallnsepy使用nsepy库获取Stock数据fromnsepyimportgethistoryfromdatetimeimportdatetimestartDatedatetime(2019,1,1)endDatedatetime(2020,10,5)获取数据StockDatagethistory(symbolINFY,startstartDate,endendDate)print(StockData。shape)StockData。head()
  可视化股价走势创建一个日期列StockData〔TradeDate〕StockData。index绘制股票价格matplotlibinlineStockData。plot(xTradeDate,yClose,kindline,figsize(20,6),rot20)
  准备数据
  LSTM模型需要以XVsy的形式输入数据。其中X代表最近10天的价格,y代表第11天的价格。
  通过查看过去2年的大量此类示例,LSTM将能够了解价格的变动。因此,当我们通过价格的最后10天时,它将能够预测明天的股票收盘价。
  由于LSTM是一种基于神经网络的算法,因此必须对数据进行标准化或规范化,以实现快速和更准确的拟合。提取每天的收盘价FullDataStockData〔〔Close〕〕。valuesprint(FullData〔0:5〕)用于神经网络快速训练的特征缩放fromsklearn。preprocessingimportStandardScaler,MinMaxScaler在标准化或规范化之间进行选择scStandardScaler()scMinMaxScaler()DataScalersc。fit(FullData)XDataScaler。transform(FullData)XFullDataprint(AfterNormalization)X〔0:5〕
  为LSTM准备数据splitintosamplesXsampleslist()ysampleslist()NumerOfRowslen(X)TimeSteps10第二天的价格预测是基于过去多少天的价格遍历值以创建组合foriinrange(TimeSteps,NumerOfRows,1):xsampleX〔iTimeSteps:i〕ysampleX〔i〕Xsamples。append(xsample)ysamples。append(ysample)将输入重塑为3D(样本数、时间步长、特征)Xdatanp。array(Xsamples)XdataXdata。reshape(Xdata。shape〔0〕,Xdata。shape〔1〕,1)print(InputDatashape)print(Xdata。shape)我们不会将y重塑为3D数据,因为它应该只是一列ydatanp。array(ysamples)ydataydata。reshape(ydata。shape〔0〕,1)print(OutputDatashape)print(ydata。shape)
  将数据拆分为训练和测试
  保留最后几天的数据以测试模型的学习情况,并休息以训练模型。
  这里我选择最近5天作为测试。选择测试数据记录的数量TestingRecords5将数据拆分为训练和测试XtrainXdata〔:TestingRecords〕XtestXdata〔TestingRecords:〕ytrainydata〔:TestingRecords〕ytestydata〔TestingRecords:〕打印训练和测试的形状print(TrainingDatashape)print(Xtrain。shape)print(ytrain。shape)print(TestingDatashape)print(Xtest。shape)print(ytest。shape)
  可视化LSTM的输入和输出数据
  打印一些示例输入和输出值,以帮助您直观地了解LSTM模型将如何学习价格。
  您可以看到输入是最近10个价格的3D数组,输出是下一个价格的1D数组。可视化发送到LSTM模型的输入和输出forinp,outinzip(Xtrain〔0:2〕,ytrain〔0:2〕):print(inp,,out)
  创建深度学习LSTM模型
  查看使用LSTM函数而不是Dense来定义隐藏层。输出层有一个神经元,因为我们预测的是第二天的价格,如果你想预测多天,那么改变输入数据和神经元等于预测的天数。为LSTM定义输入形状TimeStepsXtrain。shape〔1〕TotalFeaturesXtrain。shape〔2〕print(NumberofTimeSteps:,TimeSteps)print(NumberofFeatures:,TotalFeatures)
  在下面的代码片段中,我使用了三个隐藏的LSTM层和一个输出层。如果您的数据不准确,您可以选择更多层。同样,您可以增加或减少隐藏层中的神经元数量。
  请记住,您使用的神经元和层越多,模型变得越慢。因为有更多的计算要做。
  每层都有一些需要调整的超参数。
  下面看看LSTM的一些重要超参数units10:这意味着我们正在创建一个包含十个神经元的层。这五个神经元中的每一个都将接收输入值。inputshape(步长,总特征):LSTM期望的输入是3D格式。我们的训练数据的形状为(420,10,1),形式为(样本数、时间步长、特征数)。这意味着我们在训练数据中有420个示例要学习,每个示例回顾10步的时间,比如昨天、前天的股价是多少,直到最近10天。这称为时间步长。最后一个数字1代表特征的数量。这里我们只使用一列收盘价,因此它等于1kernelinitializer’uniform’:当神经元开始计算时,一些算法必须确定每个权重的值。这个参数指定的就是它。您可以为其选择不同的值,例如normal或glorotuniform。activation’relu’:这指定了每个神经元内部计算的激活函数。您可以选择relu、tanh、sigmoid等值。returnsequencesTrue:LSTM通过时间反向传播,因此它们将每个时间步的输出值返回到下一个隐藏层。这会将下一个隐藏层的预期输入保持为3D格式。对于最后一个隐藏层,此参数为False,因为现在它不必将3D输出返回到最终的Dense层。optimizer’adam’:该参数有助于找到神经网络中每个权重的最佳值。adam是最有用的优化器之一,另一个是rmspropbatchsize10:这指定了一次将多少行传递给网络,之后SSE计算将开始,神经网络将开始根据错误调整其权重。
  当所有行都按此参数中指定的每批10行传递时,我们称其为1epoch。或者一个完整的数据周期。这也称为小批量梯度下降。batchsize的小值会使LSTM缓慢地查看数据,例如一次2行或一次4行,这可能会导致过度拟合,与一次20或50行这样的大值相比,这将使LSTM快速查看数据,这可能会导致欠拟合。因此,必须使用超参数调整来选择合适的值。Epochs10:相同的调整权重活动持续10次,如该参数所指定的。简单来说,LSTM会查看完整的训练数据10次并调整其权重。导入Keras库和包fromkeras。modelsimportSequentialfromkeras。layersimportDensefromkeras。layersimportLSTM初始化RNNregressorSequential()添加第一个输入隐藏层和LSTM层returnsequencesTrue,表示每个时间步的输出要与隐藏的下一层共享regressor。add(LSTM(units10,activationrelu,inputshape(TimeSteps,TotalFeatures),returnsequencesTrue))添加SecondSecond隐藏层和LSTM层regressor。add(LSTM(units5,activationrelu,inputshape(TimeSteps,TotalFeatures),returnsequencesTrue))添加SecondThird隐藏层和LSTM层regressor。add(LSTM(units5,activationrelu,returnsequencesFalse))添加输出层regressor。add(Dense(units1))编译RNNregressor。compile(optimizeradam,lossmeansquarederror)importtime测量模型训练所花费的时间StartTimetime。time()将RNN拟合到训练集regressor。fit(Xtrain,ytrain,batchsize5,epochs100)EndTimetime。time()print(TotalTimeTaken:,round((EndTimeStartTime)60),Minutes)
  测量模型在测试数据上的准确性
  现在使用经过训练的模型,我们正在检查最近5天的预测价格是否接近实际价格。
  注意预测的逆变换。由于我们在模型训练之前对数据进行了归一化,因此对测试数据的预测也将被归一化,因此逆变换会将值恢复到原始规模。那么只有我们必须计算百分比准确度。对测试数据进行预测predictedPriceregressor。predict(Xtest)predictedPriceDataScaler。inversetransform(predictedPrice)获取测试数据的原始价格值origytestorigDataScaler。inversetransform(ytest)预测的准确性print(Accuracy:,100(100(abs(origpredictedPrice)orig))。mean())可视化结果importmatplotlib。pyplotaspltplt。plot(predictedPrice,colorblue,labelPredictedVolume)plt。plot(orig,colorlightblue,labelOriginalVolume)plt。title(StockPricePredictions)plt。xlabel(TradingDate)plt。xticks(range(TestingRecords),StockData。tail(TestingRecords)〔TradeDate〕)plt。ylabel(StockPrice)plt。legend()figplt。gcf()fig。setfigwidth(20)fig。setfigheight(6)plt。show()
  可视化完整数据的预测
  绘制训练和测试数据以查看LSTM模型的拟合效果。对完整数据生成预测TrainPredictionsDataScaler。inversetransform(regressor。predict(Xtrain))TestPredictionsDataScaler。inversetransform(regressor。predict(Xtest))FullDataPredictionsnp。append(TrainPredictions,TestPredictions)FullDataOrigFullData〔TimeSteps:〕绘制完整数据plt。plot(FullDataPredictions,colorblue,labelPredictedPrice)plt。plot(FullDataOrig,colorlightblue,labelOriginalPrice)plt。title(StockPricePredictions)plt。xlabel(TradingDate)plt。ylabel(StockPrice)plt。legend()figplt。gcf()fig。setfigwidth(20)fig。setfigheight(8)plt。show()
  如何预测明天的股价
  如果你想预测明天的价格,你所要做的就是将过去10天的价格以3D格式传递给训练中使用的模型。
  下面的代码片段向您展示了如何手动获取最后10个价格并对下一个价格进行单一预测。最近10天的价格Last10Daysnp。array(〔1002。15,1009。9,1007。5,1019。75,975。4,1011。45,1010。4,1009,1008。25,1017。65〕)就像我们训练模型一样归一化数据Last10DaysDataScaler。transform(Last10Days。reshape(1,1))将数据的形状更改为3D选择TimeSteps为10,因为我们已经将其用于训练NumSamples1TimeSteps10NumFeatures1Last10DaysLast10Days。reshape(NumSamples,TimeSteps,NumFeatures)对数据进行预测predictedPriceregressor。predict(Last10Days)predictedPriceDataScaler。inversetransform(predictedPrice)predictedPrice
  在上面的代码片段中,我使用了截至上周五的股市实际价格!
  因此,我们看到该模型预测(2020年10月5日)Infosys的下一个收盘价为1023!我查了一下,发现当天的收盘价是1048卢比!这么小的努力还不错!如果我想预测未来5天的价格怎么办?
  我们在上面建立的模型使用最近10天的价格并预测第二天的价格,因为我们已经用许多过去的相同粒度的示例训练了我们的模型,如下所示
  最近10天的价格第11天的价格
  现在,如果我们想要预测接下来5天或接下来20天的价格,那么我们需要使用过去的类似示例来训练模型,如下所示
  最近10天价格未来5天价格
  这也称为多步时间序列预测,我们在其中预测多个时间步长。
  为此,需要对数据准备步骤和LSTM模型进行小幅修改。
  但是,请记住,您预测得越远,您可能就越不准确,因为股票价格波动很大,没有人知道10天后会发生什么!会传来什么样的消息?这可能会影响这只股票的价格!
  因此,建议预测尽可能少的时间步长,例如最多接下来2天或接下来5天。多步LSTM的数据准备
  我正在展示如何准备用于预测未来5天的数据。同样的代码也可以轻松修改以预测接下来的10天或20天。再次考虑我们上面提取的完整数据打印最后10个值print(OriginalPrices)print(FullData〔10:〕)print()打印我们在上面为最后一个模型创建的缩放数据的最后10个值在这里,我将数据的形状更改为一维数组,因为对于多步数据准备,我们需要以这种方式进行X输入XX。reshape(X。shape〔0〕,)print(ScaledPrices)print(X〔10:〕)
  我修改了上一个模型的数据拆分逻辑,通过定义FutureTimeSteps5来生成输入输出对。这决定了我们要根据过去10天预测未来5天的价格。多步骤数据准备拆分样本Xsampleslist()ysampleslist()NumerOfRowslen(X)TimeSteps10未来几天的价格预测是基于过去多少天的价格FutureTimeSteps5您想预测未来多少天的价格遍历值以创建组合foriinrange(TimeSteps,NumerOfRowsFutureTimeSteps,1):xsampleX〔iTimeSteps:i〕ysampleX〔i:iFutureTimeSteps〕Xsamples。append(xsample)ysamples。append(ysample)将输入重塑为3D(样本、时间步长、特征)Xdatanp。array(Xsamples)XdataXdata。reshape(Xdata。shape〔0〕,Xdata。shape〔1〕,1)print(InputDataShape)print(Xdata。shape)我们不会将y重塑为3D数据,因为它应该只是一列ydatanp。array(ysamples)print(OutputDataShape)print(ydata。shape)
  将数据拆分为训练和测试选择测试数据记录的数量TestingRecords5将数据拆分为训练和测试XtrainXdata〔:TestingRecords〕XtestXdata〔TestingRecords:〕ytrainydata〔:TestingRecords〕ytestydata〔TestingRecords:〕打印训练和测试的形状print(TrainingDatashape)print(Xtrain。shape)print(ytrain。shape)print(TestingDatashape)print(Xtest。shape)print(ytest。shape)
  可视化发送到LSTM多步模型的输入输出
  打印一些输入和输出记录总是有助于理解LSTM模型中的过程。
  您可以在此处看到输入是过去10天价格的3D数组,输出是接下来5天价格的数组。可视化发送到LSTM模型的输入和输出根据过去10天的价格,我们正在了解未来5天的价格forinp,outinzip(Xtrain〔0:2〕,ytrain〔0:2〕):print(inp)print()print(out)print(20)
  创建深度学习多步LSTM模型
  我使用的配置与上一个模型中使用的配置相同。更改是在Dense层完成的。现在密集层输出等于FutureTimeSteps的值的数量。在本例中为5,因为我们要预测接下来的5天。
  如果您想要预测更多天数,您可以将其更改为10到20,但您需要在运行此代码之前以相同的方式准备数据。DefiningInputshapesforLSTMTimeStepsXtrain。shape〔1〕TotalFeaturesXtrain。shape〔2〕print(NumberofTimeSteps:,TimeSteps)print(NumberofFeatures:,TotalFeatures)
  导入Keras库和包fromkeras。modelsimportSequentialfromkeras。layersimportDensefromkeras。layersimportLSTM初始化RNNregressorSequential()添加第一个输入隐藏层和LSTM层returnsequencesTrue,表示每个时间步的输出要与隐藏的下一层共享regressor。add(LSTM(units10,activationrelu,inputshape(TimeSteps,TotalFeatures),returnsequencesTrue))添加第二个隐藏层和LSTM层regressor。add(LSTM(units5,activationrelu,inputshape(TimeSteps,TotalFeatures),returnsequencesTrue))添加第三个隐藏层和LSTM层regressor。add(LSTM(units5,activationrelu,returnsequencesFalse))添加输出层注意密集层中的神经元数量现在是未来时间步数基于我们要预测的未来天数regressor。add(Dense(unitsFutureTimeSteps))编译RNNregressor。compile(optimizeradam,lossmeansquarederror)importtime测量模型训练所花费的时间StartTimetime。time()将RNN拟合到训练集regressor。fit(Xtrain,ytrain,batchsize5,epochs100)EndTimetime。time()print(TotalTimeTaken:,round((EndTimeStartTime)60),Minutes)
  测量模型在测试数据上的准确性
  因为这是训练有素的多步模型来预测接下来的5天。每个预测将生成5天的价格,我们可以将其与原始价格相匹配。
  我们将一次比较它们一行。对测试数据进行预测predictedPriceregressor。predict(Xtest)predictedPriceDataScaler。inversetransform(predictedPrice)print(PredictedPrices)print(predictedPrice)获取测试数据的原始价格值origytestorigDataScaler。inversetransform(ytest)print(OriginalPrices)print(orig)
  每行代表原始价格和预测价格。
  我们将一次比较一行。使用简单的for循环,将每行原始值与预测值进行比较importmatplotlib。pyplotaspltforiinrange(len(orig)):PredictionpredictedPrice〔i〕Originalorig〔i〕可视化结果plt。plot(Prediction,colorblue,labelPredictedVolume)plt。plot(Original,colorlightblue,labelOriginalVolume)plt。title(Accuracyofthepredictions:str(100(100(abs(OriginalPrediction)Original))。mean()。round(2)))plt。xlabel(TradingDate)startDateIndex(FutureTimeStepsTestingRecords)FutureTimeSteps(i1)endDateIndex(FutureTimeStepsTestingRecords)FutureTimeSteps(i1)FutureTimeStepsTotalRowsStockData。shape〔0〕plt。xticks(range(FutureTimeSteps),StockData。iloc〔TotalRowsendDateIndex:TotalRows(startDateIndex),:〕〔TradeDate〕)plt。ylabel(StockPrice)plt。legend()figplt。gcf()fig。setfigwidth(20)fig。setfigheight(3)plt。show()
  预测未来5天
  如果你想预测未来5天的价格,你所要做的就是将过去10天的价格以3D格式传递给训练中使用的模型。
  下面的代码片段向您展示了如何手动传递最后10个值以获得未来5天的价格预测。对测试数据进行预测Last10DaysPricesarray(〔1376。2,1371。75,1387。15,1370。5,1344。95,1312。05,1316。65,1339。45,1339。7,1340。85〕)将数据重塑为(1,1)因为它是单个条目Last10DaysPricesLast10DaysPrices。reshape(1,1)在训练模型的同一级别上缩放数据XtestDataScaler。transform(Last10DaysPrices)NumberofSamples1TimeStepsXtest。shape〔0〕NumberofFeaturesXtest。shape〔1〕将数据重塑为3D输入XtestXtest。reshape(NumberofSamples,TimeSteps,NumberofFeatures)生成未来5天的预测Next5DaysPriceregressor。predict(Xtest)以原始比例生成价格Next5DaysPriceDataScaler。inversetransform(Next5DaysPrice)Next5DaysPrice
  总结
  这种预测只是短期的。当您尝试预测多天(例如接下来的30天或60天)时,这会惨遭失败。不是因为我们的LSTM模型不好,而是因为股市波动很大。所以,不要仅仅把钱押在这个模型上!做一些研究,然后使用这个模型作为分析的补充工具!
  我希望您喜欢阅读这篇文章,它可以帮助您消除对LSTM模型的一些疑虑。考虑与您的朋友分享这篇文章以帮助传播知识

业绩连续三年下滑,上市首日股价却大涨70,星空华文能否唱好中国好声音?每经记者丁舟洋每经实习记者宋美璐每经编辑杨夏12月29日,压着新年的哨声,手握中国好声音这!就是街舞多个知名综艺IP运营商星空华文控股有限公司(HK06698,股价50。35港元,阳了半个月后,还是冲凉了!没有相信网络里关于不能洗澡的声音头条创作挑战赛阳了半个月后,没有相信网络里关于不能洗澡的声音,还是冲凉了。这几天情况感觉非常好,各种迹象表明,自己已经开始走向阳后的康复期。最明显的是,有食欲了,而且味觉基本恢复,用微信发语音可以改变自己的声音,你知道吗?这样聊天太好玩刚刚知道和朋友聊天时微信语音还能够进行变音,是不是太有趣了,特别是一些不想使用自己原声的朋友,赶快看过来,来改变你的声音吧!让你们的聊天更加的别具一格,赶快和我一起去看看。首先我们雷蛇发布创意电竞椅头枕,可将游戏声音转换为触觉反馈IT之家1月6日消息,雷蛇在CES2023上发布了首款带近场环绕音效和触觉反馈的电竞椅头枕,名为ProjectCarol。该头枕支持近场环绕音效搭配7。1环绕声,还搭载RazerH恭喜皇马!头号水货将被清洗,1。15亿打水漂,进球数遭武磊完爆!作为近几个赛季在欧冠中表现最出色的西甲球队,皇马的引援眼光,放眼全欧洲,都是独一档的存在。凭借着自身的超强吸引力,银河战舰往往能用特别超值的价格,引进那些顶级巨星,让球队长时间位居国谈第3天多款罕见病药年治疗费超100万,有新品止步谈判环节作者丨武瑛港编辑丨朱萍1月7日,国家医保谈判进入第三天,继2021年灵魂砍价实现高值罕见病药物零突破之后,在2022年医保谈判中,罕见病药物仍然是行业关注重点。从通过国谈初审的药品励青春励青春序青春总有很多写不完的人和事,青春似一团生命的火,青春更像一个美丽的小女孩站在爱情面前显露出羞答答的样子。青春是一束东方即将升起的曙光,在人生那段年少轻狂的早晨出现,一切看上看2023艾媒张毅期待更好发挥大数据在经济中的调节作用站在2022岁末,看2023年,企业家作为中国经济的重要力量,如何看待当前的中国经济政策,对未来中国经济有何期待?新京报贝壳财经邀请百余位来自各行各业的企业家,以问卷方式完成对新一全国文化企业30强进一步发挥引领支撑作用市场竞争力和盈利能力稳定增强12月28日,光明日报社和经济日报社联合发布了第十四届全国文化企业30强名单。今年以来,30强文化企业进一步发挥引领支撑作用,市场竞争力和盈利能力持续稳定增强。双效统一助力行稳致远筋膜枪的作用和使用方法分享警戒三大隐患风险最近有很多朋友希望我讲讲筋膜枪,作为一名健身教练,我测评使用过的筋膜枪也有几十款了,对它十分了解,那今天我就为大家科普下筋膜枪的作用和使用方法,并针对筋膜枪的隐患风险进行分析,希望财政部部长刘昆2023年要更直接更有效发挥积极财政政策作用新华社北京12月29日电(记者申铖)在29日于北京举行的全国财政工作视频会议上,财政部部长刘昆介绍了2023年财政工作重点。他表示,2023年,积极的财政政策要加力提效,更直接更有
了解一下乌度卡未婚妻大他7岁,与前夫育有一子,是名女演员最近关于NBA的热搜都是关于凯尔特人主帅乌度卡的,连带着已经进入管理层的史蒂文斯也被扯上了热搜,可能少帅也没想到自己会以这种方式上热搜吧?至于大家为什么这么热诚讨论这件事,可能就是高以翔冥诞前一日铜像曝光帅气打篮球模样藏父母无限的爱记者林奕如台北报导高以翔2019年11月27日在大陆录制节目时猝逝,享年35岁,9月22日是他的冥诞,他的家人特别选在他生日的前一天,在长眠之地金宝山名人碑林区举办铜像揭幕仪式,铜安徽70岁大爷,喝酒45年身心无恙,全靠3个偏方,早知早好说来奇怪,有些人只能陪你几十年,但酒喝好了,可以陪你一辈子。安徽就有个70岁的老大爷,喝酒45年,直言酒就是自己最好的老伙计,而且这么多年下来,不光心情舒服,身体也不错。身边一些人安徽3大特色酒,便宜好喝,不含1滴香精,可惜知道的人不多全国各地都有一些独属于地方的特色酒,一些地方除了名酒受广大酒友熟知以外,一些地方的特色酒也广受欢迎,列如江苏洋河河北衡水老白干陕西杜康内蒙古闷倒驴安徽古井等都是地方极具特色的白酒。正式确定!巴萨34巨星告别诺坎普,14年拿30冠,球迷皮主席看看北京时间9月22日消息,根据每日体育报透露,巴萨队长布斯克茨已经决定将在明年夏天离开诺坎普,他与巴萨的合同将在明夏到期,布斯克茨会以自由身离开球队,据悉布斯克茨很早就有了这个决定,新兴产业集群发力创新驱动后劲十足安徽制造向新而行安徽合肥滨湖国际会展中心,正在举行的2022世界制造业大会上,奇瑞江淮汽车新车型闪亮登场,国仪量子国盾量子本源量子等量子企业发布新技术新产品全球约10的笔记本电脑20的液晶显示屏在香港金融发展局主席李律仁香港可成大湾区内金融业试点凭借背靠内地面向全球的独有优势,香港自回归以来在金融发展方面一直交出亮丽的成绩1997年回归时,香港股市市值只有4。6万亿港元,而截至今年5月,股市市值已增至38万亿港元,累计增幅关注小米造车新进展雷军密集布局芯片领域,再投荣湃半导体文懂车帝原创刘艺伟懂车帝原创行业近日,荣湃半导体(上海)有限公司近日发生工商变更,新增湖北小米长江产业基金合伙企业(有限合伙)等多名股东,同时公司注册资本由1525。3万元增加至112GB512GB68W闪充,售价仅2699元,中端旗舰售价很亲民大家好,我是唐三,随着手机数码行业的高速发展,各大厂商为了提升自家产品的竞争力,将很多旗舰机才有的配置下放到了中低端手机,因此如今的中端手机所搭载的配置,丝毫不比昔日的旗舰手机差,燕云十六声自由度高偷师机制让你学遍天下武功自从燕云十六声首曝以来,外界对这款游戏的好奇和讨论层出不穷,其中不乏关于武学的讨论。官方致力于打造一个真正开放的武侠世界,无门无派,武学的获得,比你想象的更为自由。江湖本就来自于民我科学家破译几丁质生物合成机制农药基础研究取得里程碑式成就9月21日23点,自然杂志以长文形式,发表了我国科学家的一项最新科研成果,该研究解析了大豆疫霉菌几丁质合成酶的冷冻电镜结构,首次揭示了几丁质生物合成的完整过程,突破了过去50年来未
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网