Python開發一個股票類庫

前言

使用Python開發一個股票項目。?
項目地址:?
https://github.com/pythonstock/stock?
相關資料:?
http://blog.csdn.net/freewebsys/article/details/78294566?
主要使用開發語言是python。?
使用的lib庫是pandas,tushare,TensorFlow,tornado等。

本文的原文連接是:?http://blog.csdn.net/freewebsys/article/details/78578548?
未經博主允許不得轉載。?
博主地址是:http://blog.csdn.net/freewebsys

計算股票中的16個常用指標方法大全

一個python的類庫stockstats 已經幫忙把這些數據都計算出來了。?
現在需要做的就是把這個數據展示出,分析下。每一個都是一個緯度分析的方法。?
要一個一個的學習下。

主要指標有 CR指標 KDJ指標 SMA指標 MACD指標 BOLL指標 RSI指標 WR指標?
CCI指標 TR、ATR指標 DMA指標 DMI,+DI,-DI,DX,ADX,ADXR指標?
TRIX,MATRIX指標 VR,MAVR指標 等。?
具體的計算代碼不做分析,可以直接查看 stockstats 也是非常的簡單的。?
用幾個 pandas 的函數就出來了。主要將的是使用方法。?
具體使用效果需要慢慢使用才知道。

特別的感謝?http://wiki.mbalib.com/?好多說明是從 mbalib上面查詢到的。

pip install stockstats
  • ?

直接安裝就行。?
項目地址:https://github.com/jealous/stockstats

這個lib庫和pandas 一樣實現了下標訪問的方式去計算。

    @classmethoddef _get_kdjk(cls, df, n_days):""" Get the K of KDJK = 2/3 × (prev. K) +1/3 × (curr. RSV)2/3 and 1/3 are the smooth parameters.:param df: data:param n_days: calculation range:return: None"""rsv_column = 'rsv_{}'.format(n_days)k_column = 'kdjk_{}'.format(n_days)df[k_column] = list(cls._calc_kd(df.get(rsv_column)))

如果要計算數據 直接訪問 stockStat[‘kdjk_3’] ,就可以制定使用 kdjk 指標,同時設置周期3天。參數傳遞方式特別有意思。很簡單粗暴。用起來超級方便。

#開始計算。以平安銀行為例:
#!/usr/local/bin/python
# -*- coding: utf-8 -*-import math
import pandas as pd
import numpy as np
import tushare as ts
import datetime
import matplotlib.pyplot as plt
import stockstatsbegin_time = '2017-02-01'
end_time = '2017-11-01'
code = "000001"
stock = ts.get_hist_data(code, start=begin_time, end=end_time)
stock["date"] = stock.index.values #增加日期列。
stock = stock.sort_index(0) # 將數據按照日期排序下。
#print(stock) [186 rows x 14 columns]
#初始化統計類
#stockStat = stockstats.StockDataFrame.retype(pd.read_csv('002032.csv'))
stockStat = stockstats.StockDataFrame.retype(stock)
print("init finish .")

1,delta 方法

沒有找到 volume_delta 這個方法的實現。?
原來調用是 key + “_delta” 去調用的。?
超級方便。

# volume delta against previous day 
# The Volume Delta (Vol ?) 
stockStat[['volume','volume_delta']].plot(figsize=(20,10), grid=True)
plt.show()
#交易量的delta轉換。交易量是正,volume_delta把跌變成負值。
stockStat[['close','close_delta']].plot(subplots=True, figsize=(20,10), grid=True)
plt.show()

這里寫圖片描述

2,計算n天差

可以計算,向前n天,和向后n天的差。直接使用 key “n_d” 或 “-n_d” 。?
如下圖。向前和向后對漲跌的趨勢判斷不太一樣。使用”_-n_d” 比較像原始數據的漲跌。

stockStat[['close','close_1_d','close_2_d','close_-1_d','close_-2_d']].plot(subplots=True, figsize=(20,10), grid=True)
plt.show()
# close_1_d  1 天的價差。 n天 - (n+1)天
# close_2_d  1 天的價差。 n天 - (n+2)天
# shift 函數是將數據 向前-n 向后+n 移動n天。 但是這個操作做了一個負值。
# 也就是 close_-1_d 才是和昨天的差 close_1_d 是和明天的差
#print(stockStat['close_-2_d'].head(10))
#print("stockStat['close']-stockStat['close'].shift(-1)")
#print((stockStat['close']-stockStat['close'].shift(-2)).head(10))
#print("############檢查數據")
#print(stockStat['close'].head(10))
#print(stockStat['close'].shift(2).head(10))

本文的原文連接是:?http://blog.csdn.net/freewebsys/article/details/78578548?
未經博主允許不得轉載。?
博主地址是:http://blog.csdn.net/freewebsys

3,n天漲跌百分百計算

open price change (in percent) between today and the day before yesterday ‘r’ stands for rate.?
stock[‘close_-2_r’]?
可以看到,-n天數據和今天數據的百分比。

stockStat[['close','close_-1_r','close_-2_r']].plot(subplots=True, figsize=(20,10), grid=True)
plt.show()

4,CR指標

http://wiki.mbalib.com/wiki/CR%E6%8C%87%E6%A0%87?
價格動量指標

  1. CR跌穿a、b、c、d四條線,再由低點向上爬升160時,為短線獲利的一個良機,應適當賣出股票。
  2. CR跌至40以下時,是建倉良機。而CR高于300~400時,應注意適當減倉。
# CR indicator, including 5, 10, 20 days moving average
stockStat[['close','cr','cr-ma1','cr-ma2','cr-ma3']].plot(subplots=True, figsize=(20,10), grid=True)
plt.show()

5,KDJ指標

http://wiki.mbalib.com/wiki/%E9%9A%8F%E6%9C%BA%E6%8C%87%E6%A0%87

隨機指標(KDJ)一般是根據統計學的原理,通過一個特定的周期(常為9日、9周等)內出現過的最高價、最低價及最后一個計算周期的收盤價及這三者之間的比例關系,來計算最后一個計算周期的未成熟隨機值RSV,然后根據平滑移動平均線的方法來計算K值、D值與J值,并繪成曲線圖來研判股票走勢。

(3)在使用中,常有J線的指標,即3乘以K值減2乘以D值(3K-2D=J),其目的是求出K值與D值的最大乖離程度,以領先KD值找出底部和頭部。J大于100時為超買,小于10時為超賣。

# KDJ, default to 9 days
stockStat[['close','kdjk','kdjd','kdjj'] # 分別是k d j 三個數據統計項。].plot(subplots=True,figsize=(20,10), grid=True)
plt.show()# three days KDJK cross up 3 days KDJD
# stockStat['kdjk_3_xu_kdjd_3'].plot(figsize=(20,10), grid=True)
# plt.show()
print(stockStat['kdjk_3_xu_kdjd_3'].tail())

6,SMA指標

http://wiki.mbalib.com/wiki/Sma?
簡單移動平均線(Simple Moving Average,SMA)

可以動態輸入參數,獲得幾天的移動平均。

# 2 days simple moving average on open price
stockStat[['close','close_5_sma','close_10_sma'] #].plot(subplots=True,figsize=(20,10), grid=True)
plt.show()

7,MACD指標

http://wiki.mbalib.com/wiki/MACD?
平滑異同移動平均線(Moving Average Convergence Divergence,簡稱MACD指標),也稱移動平均聚散指標

本文的原文連接是:?http://blog.csdn.net/freewebsys/article/details/78578548?
未經博主允許不得轉載。?
博主地址是:http://blog.csdn.net/freewebsys

MACD?
stock[‘macd’]?
MACD signal line?
stock[‘macds’]?
MACD histogram?
stock[‘macdh’]

MACD技術分析,運用DIF線與MACD線之相交型態及直線棒高低點與背離現象,作為買賣訊號,尤其當市場股價走勢呈一較為明確波段趨勢時,?
MACD 則可發揮其應有的功能,但當市場呈牛皮盤整格局,股價不上不下時,MACD買賣訊號較不明顯。?
當用MACD作分析時,亦可運用其他的技術分析指標如短期 K,D圖形作為輔助工具,而且也可對買賣訊號作雙重的確認。

# MACD 
stockStat[['close','macd','macds','macdh'] #].plot(subplots=True,figsize=(20,10), grid=True)
plt.show()

8,BOLL指標

http://wiki.mbalib.com/wiki/BOLL?
布林線指標(Bollinger Bands)

bolling, including upper band and lower band?
stock[‘boll’]?
stock[‘boll_ub’]?
stock[‘boll_lb’]

1、當布林線開口向上后,只要股價K線始終運行在布林線的中軌上方的時候,說明股價一直處在一個中長期上升軌道之中,這是BOLL指標發出的持股待漲信號,如果TRIX指標也是發出持股信號時,這種信號更加準確。此時,投資者應堅決持股待漲。

2、當布林線開口向下后,只要股價K線始終運行在布林線的中軌下方的時候,說明股價一直處在一個中長期下降軌道之中,這是BOLL指標發出的持幣觀望信號,如果TRIX指標也是發出持幣信號時,這種信號更加準確。此時,投資者應堅決持幣觀望。

# bolling, including upper band and lower band
stockStat[['close','boll','boll_ub','boll_lb'] #].plot(subplots=True,figsize=(20,10), grid=True)
plt.show()

9,RSI指標

http://wiki.mbalib.com/wiki/RSI?
相對強弱指標(Relative Strength Index,簡稱RSI),也稱相對強弱指數、相對力度指數

6 days RSI?
stock[‘rsi_6’]?
12 days RSI?
stock[‘rsi_12’]

(2)強弱指標保持高于50表示為強勢市場,反之低于50表示為弱勢市場。?
(3)強弱指標多在70與30之間波動。當六日指標上升到達80時,表示股市已有超買現象,如果一旦繼續上升,超過90以上時,則表示已到嚴重超買的警戒區,股價已形成頭部,極可能在短期內反轉回轉。

(4)當六日強弱指標下降至20時,表示股市有超賣現象,如果一旦繼續下降至10以下時則表示已到嚴重超賣區域,股價極可能有止跌回升的機會。

# 6 days RSI  12 days RSI
stockStat[['close','rsi_6','rsi_12'] #].plot(subplots=True,figsize=(20,10), grid=True)
plt.show()

10,WR指標

??
http://wiki.mbalib.com/wiki/%E5%A8%81%E5%BB%89%E6%8C%87%E6%A0%87?
??
威廉指數(Williams%Rate)該指數是利用擺動點來度量市場的超買超賣現象。?
??
??
10 days WR?
stock[‘wr_10’]?
6 days WR?
stock[‘wr_6’]

# 10 days WR 6 days WR
stockStat[['close','wr_10','wr_6'] #].plot(subplots=True,figsize=(20,10), grid=True)
plt.show()

11,CCI指標

http://wiki.mbalib.com/wiki/%E9%A1%BA%E5%8A%BF%E6%8C%87%E6%A0%87

  順勢指標又叫CCI指標,其英文全稱為“Commodity Channel Index”,?
是由美國股市分析家唐納德·藍伯特(Donald Lambert)所創造的,是一種重點研判股價偏離度的股市分析工具。

CCI, default to 14 days?
stock[‘cci’]?
20 days CCI?
stock[‘cci_20’]

  1、當CCI指標從下向上突破﹢100線而進入非常態區間時,表明股價脫離常態而進入異常波動階段,?
中短線應及時買入,如果有比較大的成交量配合,買入信號則更為可靠。

  2、當CCI指標從上向下突破﹣100線而進入另一個非常態區間時,表明股價的盤整階段已經結束,?
將進入一個比較長的尋底過程,投資者應以持幣觀望為主。

#  CCI, default to 14 days  20 days CCI
stockStat[['close','cci','cci_20'] #].plot(subplots=True,figsize=(20,10), grid=True)
plt.show()

12,TR、ATR指標

http://wiki.mbalib.com/wiki/%E5%9D%87%E5%B9%85%E6%8C%87%E6%A0%87?
均幅指標(Average True Ranger,ATR)

均幅指標(ATR)是取一定時間周期內的股價波動幅度的移動平均值,主要用于研判買賣時機。

TR (true range)?
stock[‘tr’]?
ATR (Average True Range)?
stock[‘atr’]

均幅指標無論是從下向上穿越移動平均線,還是從上向下穿越移動平均線時,都是一種研判信號。

#  ATR (Average True Range)
stockStat[['close','tr','atr'] #].plot(subplots=True,figsize=(20,10), grid=True)
plt.show()

13,DMA指標

http://wiki.mbalib.com/wiki/DMA

 DMA指標(Different of Moving Average)又叫平行線差指標,是目前股市分析技術指標中的一種中短期指標,它常用于大盤指數和個股的研判。

DMA, difference of 10 and 50 moving average?
stock[‘dma’]

本文的原文連接是:?http://blog.csdn.net/freewebsys/article/details/78578548?
未經博主允許不得轉載。?
博主地址是:http://blog.csdn.net/freewebsys

#   DMA, difference of 10 and 50 moving average
stockStat[['close','dma'] #].plot(subplots=True,figsize=(20,10), grid=True)
plt.show()

14,DMI,+DI,-DI,DX,ADX,ADXR指標

http://wiki.mbalib.com/wiki/DMI

動向指數Directional Movement Index,DMI)

http://wiki.mbalib.com/wiki/ADX?
平均趨向指標(Average Directional Indicator,簡稱ADX)

http://wiki.mbalib.com/wiki/%E5%B9%B3%E5%9D%87%E6%96%B9%E5%90%91%E6%8C%87%E6%95%B0%E8%AF%84%E4%BC%B0

平均方向指數評估(ADXR)實際是今日ADX與前面某一日的ADX的平均值。ADXR在高位與ADX同步下滑,可以增加對ADX已經調頭的盡早確認。?
ADXR是ADX的附屬產品,只能發出一種輔助和肯定的訊號,并非入市的指標,而只需同時配合動向指標(DMI)的趨勢才可作出買賣策略。?
在應用時,應以ADX為主,ADXR為輔。

DMI?
+DI, default to 14 days?
stock[‘pdi’]?
-DI, default to 14 days?
stock[‘mdi]?
DX, default to 14 days of +DI and -DI?
stock[‘dx’]?
ADX, 6 days SMA of DX, same as stock[‘dx_6_ema’]?
stock[‘adx]?
ADXR, 6 days SMA of ADX, same as stock[‘adx_6_ema’]?
stock[‘adxr’]

#   DMI,+DI,-DI,DX,ADX,ADXR
stockStat[['close','pdi','mdi','dx','adx','adxr'] #].plot(subplots=True,figsize=(20,10), grid=True)
plt.show()

15,TRIX,MATRIX指標

http://wiki.mbalib.com/wiki/TRIX?
TRIX指標又叫三重指數平滑移動平均指標(Triple Exponentially Smoothed Average)

TRIX, default to 12 days?
stock[‘trix’]?
MATRIX is the simple moving average of TRIX?
stock[‘trix_9_sma’]

# TRIX  MATRIX  
stockStat[['close','trix','trix_9_sma'] #].plot(subplots=True,figsize=(20,10), grid=True)
plt.show()

16,VR,MAVR指標

http://wiki.mbalib.com/wiki/%E6%88%90%E4%BA%A4%E9%87%8F%E6%AF%94%E7%8E%87

成交量比率(Volumn Ratio,VR)(簡稱VR),是一項通過分析股價上升日成交額(或成交量,下同)與股價下降日成交額比值,?
從而掌握市場買賣氣勢的中期技術指標。

VR, default to 26 days?
stock[‘vr’]?
MAVR is the simple moving average of VR?
stock[‘vr_6_sma’]

# TRIX  MATRIX  
stockStat[['close','vr','vr_6_sma'] #].plot(subplots=True,figsize=(20,10), grid=True)
plt.show()

計數count

使用 _c 計算數量,可以和其他的一起使用

#返回數量。
# close price less than 10.0 in 5 days count
print(stockStat['close_10.0_le_5_c'].tail())#返回 True False 可以作為是否購買結果。
# CR MA2 cross up CR MA1 in 20 days count
print(stockStat['cr-ma2_xu_cr-ma1_20_c'].tail()) 
date
2017-10-26    0.0
2017-10-27    0.0
2017-10-30    0.0
2017-10-31    0.0
2017-11-01    0.0
Name: close_10.0_le_5_c, dtype: float64
date
2017-10-26    False
2017-10-27    False
2017-10-30    False
2017-10-31    False
2017-11-01    False
Name: cr-ma2_xu_cr-ma1_20_c, dtype: bool

計算全部統計數據。

總結


本文的原文連接是:?http://blog.csdn.net/freewebsys/article/details/78578548?
未經博主允許不得轉載。?
博主地址是:http://blog.csdn.net/freewebsys

stockstats使用起來超級的方便。股票市場真的是個大熔爐,鍛煉人。同時也要不斷的學習。?
學習股票中的數據分析,是python 的stockstats 可以很輕松的做到。?
數據的分析報表的展示都非常容易。能夠幫助股民快速的做出分析決策。?
不放棄股票中的機會。?
總之第一步先把這些數據計算出來。然后再做分析。

其他

計算全部統計數據。在 stockstats 里面有3個寫錯了,少分號啥的。

# volume delta against previous day
stockStat['volume_delta']# open delta against next 2 day
stockStat['open_2_d']# open price change (in percent) between today and the day before yesterday
# 'r' stands for rate.
stockStat['open_-2_r']# CR indicator, including 5, 10, 20 days moving average
stockStat['cr']
stockStat['cr-ma1']
stockStat['cr-ma2']
stockStat['cr-ma3']# volume max of three days ago, yesterday and two days later
stockStat['volume_-3,2,-1_max']# volume min between 3 days ago and tomorrow
stockStat['volume_-3~1_min']# KDJ, default to 9 days
stockStat['kdjk']
stockStat['kdjd']
stockStat['kdjj']# three days KDJK cross up 3 days KDJD
#stock['kdj_3_xu_kdjd_3'] 這個寫錯了。
stockStat['kdjk_3_xu_kdjd_3']# 2 days simple moving average on open price
stockStat['open_2_sma']# MACD
stockStat['macd']
# MACD signal line
stockStat['macds']
# MACD histogram
stockStat['macdh']# bolling, including upper band and lower band
stockStat['boll']
stockStat['boll_ub']
stockStat['boll_lb']# close price less than 10.0 in 5 days count
stockStat['close_10.0_le_5_c']# CR MA2 cross up CR MA1 in 20 days count
stockStat['cr-ma2_xu_cr-ma1_20_c']# 6 days RSI
stockStat['rsi_6']
# 12 days RSI
stockStat['rsi_12']# 10 days WR
stockStat['wr_10']
# 6 days WR
stockStat['wr_6']# CCI, default to 14 days
stockStat['cci']
# 20 days CCI
stockStat['cci_20']# TR (true range)
stockStat['tr']
# ATR (Average True Range)
stockStat['atr']# DMA, difference of 10 and 50 moving average
stockStat['dma']# DMI
# +DI, default to 14 days
stockStat['pdi']
# -DI, default to 14 days
stockStat['mdi'] #少了個單引號
# DX, default to 14 days of +DI and -DI
stockStat['dx']
# ADX, 6 days SMA of DX, same as stockStat['dx_6_ema']
stockStat['adx'] #少了個單引號
# ADXR, 6 days SMA of ADX, same as stockStat['adx_6_ema']
stockStat['adxr']# TRIX, default to 12 days
stockStat['trix']
# MATRIX is the simple moving average of TRIX
stockStat['trix_9_sma']# VR, default to 26 days
stockStat['vr']
# MAVR is the simple moving average of VR
stockStat['vr_6_sma']#[5 rows x 95 columns]
#print(stockStat.head())
print(stockStat.columns.values)
print(len(stockStat.columns.values))

打印出來全部的columns 信息。其中有些是臨時的計算變量。

['open' 'high' 'close' 'low' 'volume' 'price_change' 'p_change' 'ma5''ma10' 'ma20' 'v_ma5' 'v_ma10' 'v_ma20' 'turnover' 'volume_delta'u'open_2_s' u'open_2_d' u'open_-2_r' u'middle' u'cr' u'cr-ma1' u'cr-ma2'u'cr-ma3' u'volume_-3_s' u'volume_-1_s' u'volume_2_s'u'volume_-3,2,-1_max' u'volume_-2_s' u'volume_0_s' u'volume_1_s'u'volume_-3~1_min' u'rsv_9' u'kdjk_9' u'kdjk' u'kdjd_9' u'kdjd' u'kdjj_9'u'kdjj' u'rsv_3' u'kdjk_3' u'kdjd_3' 'kdjk_3_xu_kdjd_3' u'open_2_sma'u'close_26_ema' u'macd' u'macds' u'macdh' u'close_20_sma' u'close_20_mstd'u'boll' u'boll_ub' u'boll_lb' u'close_10.0_le' u'close_10.0_le_5_c'u'cr-ma1_20_c' 'cr-ma2_xu_cr-ma1_20_c' u'close_-1_s' u'close_-1_d' u'rs_6'u'rsi_6' u'rs_12' u'rsi_12' u'wr_10' u'wr_6' u'middle_14_sma' u'cci'u'middle_20_sma' u'cci_20' u'tr' u'atr' u'close_10_sma' u'close_50_sma'u'dma' u'high_delta' u'um' u'low_delta' u'dm' u'pdm' u'pdm_14_ema'u'pdm_14' u'atr_14' u'pdi_14' u'pdi' u'mdm' u'mdm_14_ema' u'mdm_14'u'mdi_14' u'mdi' u'dx_14' u'dx' u'dx_6_ema' u'adx' u'adx_6_ema' u'adxr'u'trix' u'trix_9_sma' u'change' u'vr' u'vr_6_sma']
99

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386996.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386996.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386996.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal 由前序和中序遍歷建立二叉樹 C++...

LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal 由前序和中序遍歷建立二叉樹 C Given preorder and inorder traversal of a tree, construct the binary tree. Note:You may assume that duplicates do not exist in the tree. For example, given…

C++ STL 學習筆記 3. 文本文件操作

本文主要總結了C中對文本文件的基本操作以及使用心得,第一部分中總結了C對文本文件的基本操作,第二部分中會以csv文件為例,進行讀取存儲由逗號分隔的字符串的操作。 1. 文本讀取寫入基礎 要使用文件輸入輸出流,首先需要include相…

C# 調用python

1.C# 調用python 本質上是使用命令行運行python 1.1 C# 使用命令行 program.cs using System; using System.Diagnostics; using System.IO;namespace test {class Program{static void Main(string[] args){Program p new Program();string result p.run_cmd("ping…

4-17

1、html 中div class是什么? 在這里我將用id與class的比較,讓這個問題更容易理解(1)、使用區別id具有唯一性,在一個網頁中同一個命名只能使用一次;class命名的類可以在一個網頁中使用無數次。(2…

python pandas serie簡介及基本使用

本篇文章主要羅列了pandas模塊中serie的基本使用。環境是jupyter notebook python 3.7。 serie是能夠保存任何類型數據的一維數組,軸標簽統稱為索引,索引必須是唯一的散列且與數據的長度相同,默認情況下為np.arange(n)。 首先是import pand…

Linux系統中nc工具那些不為人知的用法

Linux nc命令用法 參考地址&#xff1a;https://www.cnblogs.com/jjzd/p/6306273.html -g<網關>&#xff1a;設置路由器躍程通信網關&#xff0c;最多設置8個; -G<指向器數目>&#xff1a;設置來源路由指向器&#xff0c;其數值為4的倍數; -h&#xff1a;在線幫助;…

python pandas dataframe基本使用整理

dataframe是一種表格型的數據存儲結構&#xff0c;可以看作是幾個serie的集合。dataframe既有行索引&#xff0c;也有列索引。 以下代碼環境為google colab/jupyter notebook。 接下來就對dataframe的基本使用進行整理。 dataframe也從屬于pandas模塊&#xff0c;因此還是老規矩…

常見開源分布式存儲系統

對比說明 /文件系統 TFS FastDFS MogileFS MooseFS GlusterFS Ceph 開發語言 C C Perl C C C 開源協議 GPL V2 GPL V3 GPL GPL V3 GPL V3 LGPL 數據存儲方式 塊 文件/Trunk 文件 塊 文件/塊 對象/文件/塊 集群節點通信協議 私有協議&#xff08;T…

[十二省聯考2019]皮配

題目鏈接 選一個派系和一個陣營可以唯一確定一名導師 因為每一個陣營里的導師都分別來自不同派系&#xff0c;所以k0時&#xff0c;對陣營的選擇是不影響對派系的選擇的 唯一的限制就是同城市的要在同一個陣營 所以以每個城市為物品&#xff0c;物品大小為該城市的人數&#xf…

機器學習理論梳理1: PCA主成分分析

機器學習的理論部分學習知識點比較亂且雜。我這里通過幾篇文章&#xff0c;簡單總結一下自己對機器學習理論的理解&#xff0c;以防遺忘。第一篇文章主要概述了機器學習的基本任務以及一個常用的降維方法&#xff0c;主成分分析。 機器學習的基本任務 機器學習能實現許多不同…

29 _react-router說明

一、SPA的理解 1.單頁面web應用(single page web application ,SPA) 2.整個應用只有一個完整的頁面 3.點擊頁面中的鏈接不會刷新頁面&#xff0c;本身也不會向服務器發請求 4.當點擊路由鏈接時&#xff0c;只會做頁面的局部更新 5.數據都需要通過ajax請求獲取&#xff0c;并在前…

Java程序員如何快速理解Kubernetes

我們希望微服務是可復制的&#xff0c;可替換的工作節點&#xff0c;這樣可以輕松進行升級或降級&#xff0c;同時無需任何停機時間&#xff0c;并花費最少代價的管理。我們可以說我們希望他們成為我們的小黃人&#xff08;minions&#xff09;。本文我們將通過一個簡單的例子來…

NLP基礎 : HMM 隱馬爾可夫模型

Hidden Markov Model, HMM 隱馬爾可夫模型&#xff0c;是一種描述隱性變量(狀態)和顯性變量(觀測狀態)之間關系的模型。該模型遵循兩個假設&#xff0c;隱性狀態i只取決于前一個隱性狀態i-1&#xff0c;而與其他先前的隱形狀態無關。觀測狀態也只取決于當前的隱形狀態。因此我們…

關于秒殺系統優化方向

今天聽了一節咕泡學院的公開課&#xff0c;有收獲。 秒殺系統的特點&#xff1a; 1.限時&#xff1b;2.限量供應&#xff1b;3.并發量大&#xff1b;如何優化&#xff1a; 1.客戶端數據緩存。 2.CDN加速。 3.nginx動靜分離&#xff0c;靜態資源緩存&#xff0c;負載均衡。 4.se…

Mysql插入很慢,找到了稍微快點的方法

MYSQL批量插入數據庫實現語句性能分析 假定我們的表結構如下 代碼如下 CREATE TABLE example ( example_id INT NOT NULL, name VARCHAR( 50 ) NOT NULL, value VARCHAR( 50 ) NOT NULL, other_value VARCHAR( 50 ) NOT NULL ) 通常情況下單條插入的sql語句我們會這么寫&…

Linux - 時間相關命令 - ntpdate, date, hwclock

1. 概述 最近也不知道寫啥了, 把之前的老文檔整理一下, 湊個數什么的配置時間這種工作, 偶爾還是要用一下主要描述 3 個命令的簡單適用 ntpdatehwlock2. ntpdate 1. 概述 用于同步時鐘的命令2. 機制 通常是有一個服務器對外提供時間客戶端可以與時間服務器同步ntp 是他們之間交…

RUNOOB python練習題1

用來練手的python 練習題&#xff0c;原鏈接 : python練習實例1 題干 : 有四個數字&#xff1a;1、2、3、4&#xff0c;能組成多少個互不相同且無重復數字的三位數&#xff1f;各是多少&#xff1f; import numpy as np cen np.array([1,2,3,4]) tens np.array([1,2,3,4])…

mysql explain用法和結果的含義

explain顯示了mysql如何使用索引來處理select語句以及連接表。可以幫助選擇更好的索引和寫出更優化的查詢語句。 使用方法&#xff0c;在select語句前加上explain就可以了&#xff1a; 如&#xff1a; explain select surname,first_name form a,b where a.idb.id EXPLAIN列…

日志模塊logging用法

一、常用日志記錄場景及最佳解決方案&#xff1a; 日志記錄方式 最佳記錄日志方案 普通情況下&#xff0c;在控制臺顯示輸出 print() 報告正常程序操作過程中發生的事件 logging.info()(或者更詳細的logging.debug()) 發出有關特定事件的警告 warnings.warn()或者loggin…

MySQL 億級數據需求的優化思路(一),交易流水記錄的查詢

對MySQL的性能和億級數據的處理方法思考&#xff0c;以及分庫分表到底該如何做&#xff0c;在什么場景比較合適&#xff1f; 比如銀行交易流水記錄的查詢 限鹽少許&#xff0c;上實際實驗過程&#xff0c;以下是在實驗的過程中做一些操作&#xff0c;以及踩過的一些坑&#…