python炒股模块_Python数据分析-numpy模块、pandas模块.
基本操作、股票案例
索引操作和列表同理
arr = np.random.randint(0,100,size=(5,6))
arr
array([[14, 89, 71, 96, 1, 94],
[30, 98, 10, 64, 71, 54],
[ 4, 80, 6, 27, 88, 3],
[83, 75, 99, 24, 57, 37],
[98, 24, 57, 42, 20, 21]])
arr[1][3]
64
切⽚操作
切出前两列数据
切出前两⾏数据
切出前两⾏的前两列的数据
数组数据翻转
练习:将⼀张图⽚上下左右进⾏翻转操作
练习:将图⽚进⾏指定区域的裁剪
#切出数组的前两⾏的数据
arr[0:2]
array([[14, 89, 71, 96, 1, 94],
[30, 98, 10, 64, 71, 54]])
#切出数组的前两列
arr[:,0:2]  #逗号前为⾏,逗号后为列
array([[14, 89],
[30, 98],
[ 4, 80],
[83, 75],
[98, 24]])
#切出前两⾏的前两列
arr[0:2,0:2]
array([[14, 89],
[30, 98]])
#将数组进⾏倒置
arr[::-1]
array([[98, 24, 57, 42, 20, 21],
[83, 75, 99, 24, 57, 37],
[ 4, 80, 6, 27, 88, 3],
[30, 98, 10, 64, 71, 54],
[14, 89, 71, 96, 1, 94]])
#将数组进列倒置
arr[:,::-1]
array([[94, 1, 96, 71, 89, 14],
[54, 71, 64, 10, 98, 30],
[ 3, 88, 27, 6, 80, 4],
[37, 57, 24, 99, 75, 83],
[21, 20, 42, 57, 24, 98]])
#将数组进⾏和列都倒置
arr[::-1,::-1]
array([[21, 20, 42, 57, 24, 98],
[37, 57, 24, 99, 75, 83],
[ 3, 88, 27, 6, 80, 4],
[54, 71, 64, 10, 98, 30],
[94, 1, 96, 71, 89, 14]])
img_arr.shape
(402, 480, 3) #402 480 是像素 也是就⾏和列 3控制的是颜⾊#将图⽚进⾏左右翻转
plt.imshow(img_arr[:,::-1,:])
plt.imshow(img_arr[::-1])          #上下倒置
plt.imshow(img_arr[::-1,::-1,::-1])  #上下左右 颜⾊都倒置
#图⽚的裁剪:将脸部数据裁剪下来
plt.imshow(img_arr[80:220,90:230,:])
变形reshape
注意:变形前和变形后数组的容量不可以发⽣变化
arr
array([[97, 52, 0, 10, 49, 90],
[43, 96, 1, 51, 17, 12],
[22, 9, 26, 78, 24, 59],
[86, 85, 69, 17, 95, 37],
[61, 61, 79, 19, 82, 98]])
arr.shape
(5, 6)
#将⼆维数组变形成⼀维数组
arr_1 = shape((30,))    #arr 是五⾏六列 30个元素  变形前和变形后数组的容量不可以发⽣变化array([97, 52, 0, 10, 49, 90, 43, 96, 1, 51, 17, 12, 22, 9, 26, 78, 24,
59, 86, 85, 69, 17, 95, 37, 61, 61, 79, 19, 82, 98])
#将⼀维变多维
shape((6,5))
array([[14, 89, 71, 96, 1],
[94, 30, 98, 10, 64],
[71, 54, 4, 80, 6],
[27, 88, 3, 83, 75],
[99, 24, 57, 37, 98],
[24, 57, 42, 20, 21]])
shape((-1,5))        #-1 表⽰⾃动匹配
array([[14, 89, 71, 96, 1],
[94, 30, 98, 10, 64],
[71, 54, 4, 80, 6],
[27, 88, 3, 83, 75],
[99, 24, 57, 37, 98],
[24, 57, 42, 20, 21]])
级联操作
- 将多个numpy数组进⾏横向或者纵向的拼接
axis轴向的理解
0:列
1:⾏
问题:
级联的两个数组维度⼀样,但是⾏列个数不⼀样会如何?
#axis=0列和列进⾏拼接,axis=1⾏跟⾏进⾏拼接
array([[97, 52, 0, 10, 49, 90],
[43, 96, 1, 51, 17, 12],
[22, 9, 26, 78, 24, 59],
[86, 85, 69, 17, 95, 37],
[61, 61, 79, 19, 82, 98],
[97, 52, 0, 10, 49, 90],
[43, 96, 1, 51, 17, 12],
[22, 9, 26, 78, 24, 59],
[86, 85, 69, 17, 95, 37],
[61, 61, 79, 19, 82, 98]])
array([[14, 89, 71, 96, 1, 94, 14, 89, 71, 96, 1, 94], [30, 98, 10, 64, 71, 54, 30, 98, 10, 64, 71, 54], [ 4, 80, 6, 27, 88, 3, 4, 80, 6, 27, 88, 3],
[83, 75, 99, 24, 57, 37, 83, 75, 99, 24, 57, 37], [98, 24, 57, 42, 20, 21, 98, 24, 57, 42, 20, 21]]) arr_new = np.random.randint(0,100,size=(5,5))
arr_new
array([[87, 58, 2, 60, 80],
[45, 90, 7, 83, 67],
[90, 99, 84, 21, 49],
[29, 92, 58, 41, 98],
[75, 97, 64, 13, 83]])
#如果横向级联保证⾏数⼀致,纵向级联保证列数⼀致
#注意:维度不⼀致的数组⽆法级联
array([[14, 89, 71, 96, 1, 94, 87, 58, 2, 60, 80], [30, 98, 10, 64, 71, 54, 45, 90, 7, 83, 67],
[ 4, 80, 6, 27, 88, 3, 90, 99, 84, 21, 49],
[83, 75, 99, 24, 57, 37, 29, 92, 58, 41, 98],
[98, 24, 57, 42, 20, 21, 75, 97, 64, 13, 83]])
#图⽚的9宫格
img_arr_3 = np.concatenate((img_arr,img_arr,img_arr),axis=1)        #三张图⽚横向拼接
img_arr_9 = np.concatenate((img_arr_3,img_arr_3,img_arr_3),axis=0)  #三张横向拼接的图 再三张纵向拼接
plt.imshow(img_arr_9)
常⽤的聚合操作
sum,max,min,mean
arr.sum() #arr 内所有元素的和
1525
arr.sum(axis=0) #所有⾏的和
array([309, 303, 175, 175, 267, 296]) #sum 、 max 、 min 差不多
array([45.8, 73.2, 48.6, 50.6, 47.4, 41.8])
array([33.4, 51.3, 66.9])
常⽤的数学函数
NumPy 提供了标准的三⾓函数:sin()、cos()、tan()
numpy.around(a,decimals) 函数返回指定数字的四舍五⼊值。
参数说明:
a: 数组
decimals: 舍⼊的⼩数位数。 默认值为0。 如果为负,整数将四舍五⼊到⼩数点左侧的位置
linspace numpynp.sin([3,5,4,6,2,1]) # 数转正弦函数
array([ 0.14112001, -0.95892427, -0.7568025 , -0.2794155 , 0.90929743,
0.84147098])
np.around([33.4,51.2,66.8],decimals=-1) #四舍五⼊ decimals 0 表⽰保留整数 -1 表⽰⼩数点外第⼀个数做四舍五⼊ 即33.4的个位数3 51.6的1 做四舍五⼊ 1 表⽰的是⼩数点最后⼀位做
四舍五⼊
array([30., 50., 70.])
np.around([33.44,51.26,66.86],decimals=1)
常⽤的统计函数
numpy.amin() 和 numpy.amax(),⽤于计算数组中的元素沿指定轴的最⼩、最⼤值。
numpy.ptp():计算数组中元素最⼤值与最⼩值的差(最⼤值 - 最⼩值)。
标准差std():标准差是⼀组数据平均值分散程度的⼀种度量。
公式:std = sqrt(mean((x - x.mean())**2))
如果数组是 [1,2,3,4],则其平均值为 2.5。 因此,差的平⽅是 [2.25,0.25,0.25,2.25],并且其平均值的平⽅根除以 4,即
sqrt(5/4) ,结果为 1.1180339887498949。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。