方法一:
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 )
memncpy( tmp, pstr + n, steps );
memncpy(pstr + steps, pstr, n );
memncpy(pstr, tmp, steps );
主函数 输入 我相信楼主自己应该能解决,只是写了方法
.求分!!!
savetxt
import numpy as np
np.mean(c) = np.average(c)
t = np.arange(len(c))
np.average(c, weights=t)
np.min(c)
np.max(c)
np.ptp(c) 最大值与最小值的差值
np.median(c) 中位数
np.msort(c) 升序排序
np.var(c) 方差
np.diff(c) 可以返回一个由相邻数组元素的差
值构成的数组
returns = np.diff( arr ) / arr[ : -1] #diff返回的数组比收盘价数组少一个元素
np.std(c) 标准差
对数收益率
logreturns = np.diff( np.log(c) ) #应检查输入数组以确保其不含有零和负数
where 可以根据指定的条件返回所有满足条件的数
组元素的索引值.
posretindices = np.where(returns 0)
print "Dates =", dates
return datetime.datetime.strptime(s, "%d-%m-%Y").date().weekday()
# 星期一 0
# 星期二 1
#output
indices = np.where(dates == i)
prices = np.take(close, indices) #按数组的元素运算,产生一个数组作为输出.
np.take(a, indices)
np.argmax(c) #返回的是数组中最大元素的索引值
np.argmin(c)
#得到第一个星期一和最后一个星期五
first_monday = np.ravel(np.where(dates == 0))[0]
#创建一个数组,用于存储三周内每一天的索引值
weeks_indices = np.arange(first_monday, last_friday + 1)
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") #指定了文件名、需要保存的数组名、分隔符(在这个例子中为英文标点逗号)以及存储浮点数的格式.
格式字符串以一个百分号开始.此时此刻呢是一个可选的标志字符:-表示结果左对齐,0表示左端补0,+表示输出符号(正号+或负号-).第三部分为可选的输出宽度参数,表示输出的最小位数.第四部分是精度格式符,以"."开头,后面跟一个表示精度的整数.最后是一个类型指定字符,在例子中指定为字符串类型.
numpy.apply_along_axis(func1d, axis, arr, *args, **kwargs)
def my_func(a):
... """Average first and last element of a 1-D array"""
np.apply_along_axis(my_func, 0, b) #沿着X轴运动,取列切片
np.apply_along_axis(my_func, 1, b) #沿着y轴运动,取行切片
np.apply_along_axis(sorted, 1, b)
(1) 使用ones函数创建一个长度为N的元素均初始化为1的数组,然后对整个数组除以N,即可得到权重.如下所示:
N = int(sys.argv[1])
weights = np.ones(N) / N
print "Weights", weights
sma = np.convolve(weights, c)[N-1:-N+1] #卷积是分析数学中一种重要的运算,定义为一个函数与经过翻转和平移的另一个函数的乘积的积分.
t = np.arange(N - 1, len(c)) #作图
plot(t, c[N-1:], lw=1.0)
show()
指数移动平均线(exponential moving average).指数移动平均线使用的权重是指数衰减的.对历史上的数据点赋予的权重以指数速度减小,但永远不会到达0.
print "Exp", np.exp(x)
Linspace 返回一个元素值在指定的范围内均匀分布的数组.
(1)权重计算
weights = np.exp(np.linspace(-1. , 0. , N))
weights /= weights.sum()
ema = np.convolve(weights, c)[N-1:-N+1]
t = np.arange(N - 1, len(c))
(x, residuals, rank, s) = np.linalg.lstsq(A, b) #系数向量x、一个残差数组、A的秩以及A的奇异值
print x, residuals, rank, s
#计算下一个预测值
print np.dot(b, x)
x
np.ones_like(x) #用1填充数组
array([[1, 1, 1], [1, 1, 1]])
类似函数
zeros_like
empty_like
zeros
ones
empty
print "a =", a
print a
print "b =", b
print "Factorial", b.prod() #输出数组元素阶乘结果
print "Factorials", b.cumprod()
最容易想到的应该是DP算法,即取初始轨迹的起点A和终点B连线,计算每个点到这条线的距离,距离最大的点C若小于要求误差则结束;
否则将C点加入压缩后的数据集,对AC和CB重复以上过程直至满足误差要求.
①Numpy库
是Python开源的数值计算扩展工具,提供了Python对多维数组的支持,能够支持高级的维度数组与矩阵运算.此外,针对数组运算也提供了大量的数学函数库,Numpy是大部分Python科学计算的基础,具有很多功能.
是一个基于Numpy的数据分析包,为了解决数据分析任务而创建的.Pandas中纳入了大量库和标准的数据模型,提供了高效地操作大型数据集所需要的函数和方法,使用户能快速便捷地处理数据.
是Python中基于Matplotlib的数据可视化工具,提供了很多高层封装的函数,帮助数据分析人员快速绘制美观的数据图形,从而避免了许多额外的参数配置问题.
转<
运算规则:
按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零.
语法格式:
需要移位的数字移位的位数
计算过程:
的连个空位补零.则得到的结果是00000000000000000000000000001100,
按二进制形式把所有的数字向右移动对应的位数,低位移出(舍弃),高位的空位补符号位
即正数补0,负数补1
语法规则:
需要移位的数字移位的次数
①.1的二进制形式为:00000000000000000000000000001011然后把低位的最
后两个数字移出,因为该数字是正数,所以在高位补0,则得到的最终的二进制结果为:
转自 .