日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
python平移函數(shù) python左移位運(yùn)算

編程題:鍵盤輸入一個(gè)字符串,然后鍵盤輸入整數(shù)n,編寫函數(shù)fun,將字符串中前n個(gè)元素平移到字符串的最后

方法一:

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比武強(qiáng)網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式武強(qiáng)網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋武強(qiáng)地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。

void fun ( char *pstr, int steps )

{

int n = strlen( pstr ) - steps;

char tmp[max_len];

strcpy ( tmp, pstr + n );

strcpy ( tmp + steps, pstr);

*( tmp + strlen ( pstr ) ) = '\0';

strcpy( pstr, tmp );

}

方法二:

void fun( char *pstr, int steps )

{

int n = strlen( pstr ) - steps;

char tmp[max_len];

memncpy( tmp, pstr + n, steps );

memncpy(pstr + steps, pstr, n );

memncpy(pstr, tmp, steps );

}

主函數(shù) 輸入 我相信樓主自己應(yīng)該能解決,只是寫了方法

。求分?。?!

python數(shù)據(jù)分析與應(yīng)用第三章代碼3-5的數(shù)據(jù)哪來的

savetxt

import numpy as np

i2 = np.eye(2)

np.savetxt("eye.txt", i2)

3.4 讀入CSV文件

# AAPL,28-01-2011, ,344.17,344.4,333.53,336.1,21144800

c,v=np.loadtxt('data.csv', delimiter=',', usecols=(6,7), unpack=True) #index從0開始

3.6.1 算術(shù)平均值

np.mean(c) = np.average(c)

3.6.2 加權(quán)平均值

t = np.arange(len(c))

np.average(c, weights=t)

3.8 極值

np.min(c)

np.max(c)

np.ptp(c) 最大值與最小值的差值

3.10 統(tǒng)計(jì)分析

np.median(c) 中位數(shù)

np.msort(c) 升序排序

np.var(c) 方差

3.12 分析股票收益率

np.diff(c) 可以返回一個(gè)由相鄰數(shù)組元素的差

值構(gòu)成的數(shù)組

returns = np.diff( arr ) / arr[ : -1] #diff返回的數(shù)組比收盤價(jià)數(shù)組少一個(gè)元素

np.std(c) 標(biāo)準(zhǔn)差

對(duì)數(shù)收益率

logreturns = np.diff( np.log(c) ) #應(yīng)檢查輸入數(shù)組以確保其不含有零和負(fù)數(shù)

where 可以根據(jù)指定的條件返回所有滿足條件的數(shù)

組元素的索引值。

posretindices = np.where(returns 0)

np.sqrt(1./252.) 平方根,浮點(diǎn)數(shù)

3.14 分析日期數(shù)據(jù)

# AAPL,28-01-2011, ,344.17,344.4,333.53,336.1,21144800

dates, close=np.loadtxt('data.csv', delimiter=',', usecols=(1,6), converters={1:datestr2num}, unpack=True)

print "Dates =", dates

def datestr2num(s):

return datetime.datetime.strptime(s, "%d-%m-%Y").date().weekday()

# 星期一 0

# 星期二 1

# 星期三 2

# 星期四 3

# 星期五 4

# 星期六 5

# 星期日 6

#output

Dates = [ 4. 0. 1. 2. 3. 4. 0. 1. 2. 3. 4. 0. 1. 2. 3. 4. 1. 2. 4. 0. 1. 2. 3. 4. 0.

1. 2. 3. 4.]

averages = np.zeros(5)

for i in range(5):

indices = np.where(dates == i)

prices = np.take(close, indices) #按數(shù)組的元素運(yùn)算,產(chǎn)生一個(gè)數(shù)組作為輸出。

a = [4, 3, 5, 7, 6, 8]

indices = [0, 1, 4]

np.take(a, indices)

array([4, 3, 6])

np.argmax(c) #返回的是數(shù)組中最大元素的索引值

np.argmin(c)

3.16 匯總數(shù)據(jù)

# AAPL,28-01-2011, ,344.17,344.4,333.53,336.1,21144800

#得到第一個(gè)星期一和最后一個(gè)星期五

first_monday = np.ravel(np.where(dates == 0))[0]

last_friday = np.ravel(np.where(dates == 4))[-1]

#創(chuàng)建一個(gè)數(shù)組,用于存儲(chǔ)三周內(nèi)每一天的索引值

weeks_indices = np.arange(first_monday, last_friday + 1)

#按照每個(gè)子數(shù)組5個(gè)元素,用split函數(shù)切分?jǐn)?shù)組

weeks_indices = np.split(weeks_indices, 5)

#output

[array([1, 2, 3, 4, 5]), array([ 6, 7, 8, 9, 10]), array([11,12, 13, 14, 15])]

weeksummary = np.apply_along_axis(summarize, 1, weeks_indices,open, high, low, close)

def summarize(a, o, h, l, c): #open, high, low, close

monday_open = o[a[0]]

week_high = np.max( np.take(h, a) )

week_low = np.min( np.take(l, a) )

friday_close = c[a[-1]]

return("APPL", monday_open, week_high, week_low, friday_close)

np.savetxt("weeksummary.csv", weeksummary, delimiter=",", fmt="%s") #指定了文件名、需要保存的數(shù)組名、分隔符(在這個(gè)例子中為英文標(biāo)點(diǎn)逗號(hào))以及存儲(chǔ)浮點(diǎn)數(shù)的格式。

0818b9ca8b590ca3270a3433284dd417.png

格式字符串以一個(gè)百分號(hào)開始。接下來是一個(gè)可選的標(biāo)志字符:-表示結(jié)果左對(duì)齊,0表示左端補(bǔ)0,+表示輸出符號(hào)(正號(hào)+或負(fù)號(hào)-)。第三部分為可選的輸出寬度參數(shù),表示輸出的最小位數(shù)。第四部分是精度格式符,以”.”開頭,后面跟一個(gè)表示精度的整數(shù)。最后是一個(gè)類型指定字符,在例子中指定為字符串類型。

numpy.apply_along_axis(func1d, axis, arr, *args, **kwargs)

def my_func(a):

... """Average first and last element of a 1-D array"""

... return (a[0] + a[-1]) * 0.5

b = np.array([[1,2,3], [4,5,6], [7,8,9]])

np.apply_along_axis(my_func, 0, b) #沿著X軸運(yùn)動(dòng),取列切片

array([ 4., 5., 6.])

np.apply_along_axis(my_func, 1, b) #沿著y軸運(yùn)動(dòng),取行切片

array([ 2., 5., 8.])

b = np.array([[8,1,7], [4,3,9], [5,2,6]])

np.apply_along_axis(sorted, 1, b)

array([[1, 7, 8],

[3, 4, 9],

[2, 5, 6]])

3.20 計(jì)算簡單移動(dòng)平均線

(1) 使用ones函數(shù)創(chuàng)建一個(gè)長度為N的元素均初始化為1的數(shù)組,然后對(duì)整個(gè)數(shù)組除以N,即可得到權(quán)重。如下所示:

N = int(sys.argv[1])

weights = np.ones(N) / N

print "Weights", weights

在N = 5時(shí),輸出結(jié)果如下:

Weights [ 0.2 0.2 0.2 0.2 0.2] #權(quán)重相等

(2) 使用這些權(quán)重值,調(diào)用convolve函數(shù):

c = np.loadtxt('data.csv', delimiter=',', usecols=(6,),unpack=True)

sma = np.convolve(weights, c)[N-1:-N+1] #卷積是分析數(shù)學(xué)中一種重要的運(yùn)算,定義為一個(gè)函數(shù)與經(jīng)過翻轉(zhuǎn)和平移的另一個(gè)函數(shù)的乘積的積分。

t = np.arange(N - 1, len(c)) #作圖

plot(t, c[N-1:], lw=1.0)

plot(t, sma, lw=2.0)

show()

3.22 計(jì)算指數(shù)移動(dòng)平均線

指數(shù)移動(dòng)平均線(exponential moving average)。指數(shù)移動(dòng)平均線使用的權(quán)重是指數(shù)衰減的。對(duì)歷史上的數(shù)據(jù)點(diǎn)賦予的權(quán)重以指數(shù)速度減小,但永遠(yuǎn)不會(huì)到達(dá)0。

x = np.arange(5)

print "Exp", np.exp(x)

#output

Exp [ 1. 2.71828183 7.3890561 20.08553692 54.59815003]

Linspace 返回一個(gè)元素值在指定的范圍內(nèi)均勻分布的數(shù)組。

print "Linspace", np.linspace(-1, 0, 5) #起始值、終止值、可選的元素個(gè)數(shù)

#output

Linspace [-1. -0.75 -0.5 -0.25 0. ]

(1)權(quán)重計(jì)算

N = int(sys.argv[1])

weights = np.exp(np.linspace(-1. , 0. , N))

(2)權(quán)重歸一化處理

weights /= weights.sum()

print "Weights", weights

#output

Weights [ 0.11405072 0.14644403 0.18803785 0.24144538 0.31002201]

(3)計(jì)算及作圖

c = np.loadtxt('data.csv', delimiter=',', usecols=(6,),unpack=True)

ema = np.convolve(weights, c)[N-1:-N+1]

t = np.arange(N - 1, len(c))

plot(t, c[N-1:], lw=1.0)

plot(t, ema, lw=2.0)

show()

3.26 用線性模型預(yù)測(cè)價(jià)格

(x, residuals, rank, s) = np.linalg.lstsq(A, b) #系數(shù)向量x、一個(gè)殘差數(shù)組、A的秩以及A的奇異值

print x, residuals, rank, s

#計(jì)算下一個(gè)預(yù)測(cè)值

print np.dot(b, x)

3.28 繪制趨勢(shì)線

x = np.arange(6)

x = x.reshape((2, 3))

x

array([[0, 1, 2], [3, 4, 5]])

np.ones_like(x) #用1填充數(shù)組

array([[1, 1, 1], [1, 1, 1]])

類似函數(shù)

zeros_like

empty_like

zeros

ones

empty

3.30 數(shù)組的修剪和壓縮

a = np.arange(5)

print "a =", a

print "Clipped", a.clip(1, 2) #將所有比給定最大值還大的元素全部設(shè)為給定的最大值,而所有比給定最小值還小的元素全部設(shè)為給定的最小值

#output

a = [0 1 2 3 4]

Clipped [1 1 2 2 2]

a = np.arange(4)

print a

print "Compressed", a.compress(a 2) #返回一個(gè)根據(jù)給定條件篩選后的數(shù)組

#output

[0 1 2 3]

Compressed [3]

b = np.arange(1, 9)

print "b =", b

print "Factorial", b.prod() #輸出數(shù)組元素階乘結(jié)果

#output

b = [1 2 3 4 5 6 7 8]

Factorial 40320

print "Factorials", b.cumprod()

#output

怎么用python實(shí)現(xiàn)一個(gè)坐標(biāo)圖的平移和縮放

最容易想到的應(yīng)該是DP算法,即取初始軌跡的起點(diǎn)A和終點(diǎn)B連線,計(jì)算每個(gè)點(diǎn)到這條線的距離,距離最大的點(diǎn)C若小于要求誤差則結(jié)束;

否則將C點(diǎn)加入壓縮后的數(shù)據(jù)集,對(duì)AC和CB重復(fù)以上過程直至滿足誤差要求。

【Python基礎(chǔ)】python數(shù)據(jù)分析需要哪些庫?

1.Numpy庫

是Python開源的數(shù)值計(jì)算擴(kuò)展工具,提供了Python對(duì)多維數(shù)組的支持,能夠支持高級(jí)的維度數(shù)組與矩陣運(yùn)算。此外,針對(duì)數(shù)組運(yùn)算也提供了大量的數(shù)學(xué)函數(shù)庫,Numpy是大部分Python科學(xué)計(jì)算的基礎(chǔ),具有很多功能。

2.Pandas庫

是一個(gè)基于Numpy的數(shù)據(jù)分析包,為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。Pandas中納入了大量庫和標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供了高效地操作大型數(shù)據(jù)集所需要的函數(shù)和方法,使用戶能快速便捷地處理數(shù)據(jù)。

3.Matplotlib庫

是一個(gè)用在Python中繪制數(shù)組的2D圖形庫,雖然它起源于模仿MATLAB圖形命令,但它獨(dú)立于MATLAB,可以通過Pythonic和面向?qū)ο蟮姆绞绞褂茫荘ython中最出色的繪圖庫。主要用純Python語言編寫的,它大量使用Numpy和其他擴(kuò)展代碼,即使對(duì)大型數(shù)組也能提供良好的性能。

4.Seaborn庫

是Python中基于Matplotlib的數(shù)據(jù)可視化工具,提供了很多高層封裝的函數(shù),幫助數(shù)據(jù)分析人員快速繪制美觀的數(shù)據(jù)圖形,從而避免了許多額外的參數(shù)配置問題。

5.NLTK庫

被稱為使用Python進(jìn)行教學(xué)和計(jì)算語言學(xué)工作的最佳工具,以及用自然語言進(jìn)行游戲的神奇圖書館。NLTK是一個(gè)領(lǐng)先的平臺(tái),用于構(gòu)建使用人類語言數(shù)據(jù)的Python程序,它為超過50個(gè)語料庫和詞匯資源提供了易于使用的接口,還提供了一套文本處理庫,用于分類、標(biāo)記化、詞干化、解析和語義推理、NLP庫的包裝器和一個(gè)活躍的討論社區(qū)。

轉(zhuǎn)《python 位操作符 左移和右移 運(yùn)算》

左移和右移N位等同于無溢出檢查的2的N次冪運(yùn)算:2**N

運(yùn)算規(guī)則:

按二進(jìn)制形式把所有的數(shù)字向左移動(dòng)對(duì)應(yīng)的位數(shù),高位移出(舍棄),低位的空位補(bǔ)零。

語法格式:

需要移位的數(shù)字移位的位數(shù)

例如:32則是將數(shù)字3左移動(dòng)2位

計(jì)算過程:

32首先把3轉(zhuǎn)換為二進(jìn)制數(shù)字00000000000000000000000000000011

然后把該數(shù)字高位(左側(cè))的兩個(gè)零移出,其他的數(shù)字都朝左平移2位,最后在低位(右側(cè))

的連個(gè)空位補(bǔ)零。則得到的結(jié)果是00000000000000000000000000001100,

則轉(zhuǎn)換為十進(jìn)制是12

運(yùn)算規(guī)則:

按二進(jìn)制形式把所有的數(shù)字向右移動(dòng)對(duì)應(yīng)的位數(shù),低位移出(舍棄),高位的空位補(bǔ)符號(hào)位

即正數(shù)補(bǔ)0,負(fù)數(shù)補(bǔ)1

語法規(guī)則:

需要移位的數(shù)字移位的次數(shù)

例如:112則是將數(shù)字11右移2位

計(jì)算過程:

11的二進(jìn)制形式為:00000000000000000000000000001011然后把低位的最

后兩個(gè)數(shù)字移出,因?yàn)樵摂?shù)字是正數(shù),所以在高位補(bǔ)0,則得到的最終的二進(jìn)制結(jié)果為:

00000000000000000000000000000010轉(zhuǎn)換為十進(jìn)制數(shù)為3

轉(zhuǎn)自 。


網(wǎng)站標(biāo)題:python平移函數(shù) python左移位運(yùn)算
URL地址:http://www.dlmjj.cn/article/hejioh.html