当前位置:   article > 正文

金融数据分析与挖掘实战练习2.5-2.9_python金融数据分析与挖掘答案

python金融数据分析与挖掘答案
# 2.5.1数组切片
#满足条件的切片
import numpy as np
D = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]) #定义数组
  • 1
  • 2
  • 3
  • 4
print(D)
  • 1
[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]
 [13 14 15 16]]
  • 1
  • 2
  • 3
  • 4
# 将D中的第0列大于5的所有列数据取出
D1 = D[D[ : ,0] > 5, : ]
print(D1)
  • 1
  • 2
  • 3
[[ 9 10 11 12]
 [13 14 15 16]]
  • 1
  • 2
# 取D中第0列大于5的第2、3列数据
D2 = D[D[ : ,0] > 5,[2,3]]  #输出的是第2行的第2列数据和第3行的第3列数据
print(D2)
  • 1
  • 2
  • 3
[11 16]
  • 1
TF = [True,False,False,True]   #可以用逻辑真假来选择数组中的行或列
D3 = D[TF,:]
print(D3)
  • 1
  • 2
  • 3
[[ 1  2  3  4]
 [13 14 15 16]]
  • 1
  • 2
# 取第0,3行的2,3列数据
D4 = D[TF,[2,3]]    #输出的是第0行的第2列数据和第3行的第3列数据
print(D4)
  • 1
  • 2
  • 3
[ 3 16]
  • 1
# 取D中大于4的所有元素
D5 = D[D[:,:] > 4]
print(D5)
  • 1
  • 2
  • 3
[ 5  6  7  8  9 10 11 12 13 14 15 16]
  • 1
D6 = D[D > 4]
print(D6)
  • 1
  • 2
[ 5  6  7  8  9 10 11 12 13 14 15 16]
  • 1
#2.5.2 利用ix_()函数进行数组切片
# ix_()这个函数是直接构造行列的索引进行切片
# 提取D中行数为1,2,列数为1,3的所有元素
D7 = D[np.ix_([1,2],[1,3])]
print(D7)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
[[ 6  8]
 [10 12]]
  • 1
  • 2
# 提取D中行数为0,1,列数为1,3的所有元素
D8 = D[np.ix_([0,1],[1,3])]
print(D8)

  • 1
  • 2
  • 3
  • 4
[[2 4]
 [6 8]]
  • 1
  • 2
D81 = D[np.ix_(np.arange(2),[1,3])]
print(D81)
  • 1
  • 2
[[2 4]
 [6 8]]
  • 1
  • 2
# 提取D中第一列小于11得到的逻辑数作为行索引,列数为1,2的所有元素
D9 = D[np.ix_(D[:,1] < 11,[1,2])]
print(D9)
  • 1
  • 2
  • 3
[[ 2  3]
 [ 6  7]
 [10 11]]
  • 1
  • 2
  • 3
D10 = D[np.ix_(TF,[2])] # 按照TF的逻辑值(真,假,假,真)作为行索引,第2列的所有值
print(D10)
  • 1
  • 2
[[ 3]
 [15]]
  • 1
  • 2
# 2.6 数组连接(分为行连接和列连接)
A = np.array([[1,2],[3,4]])
B = np.array([[5,6],[7,8]])
# 行连接需要行数相同,列连接需要列数相同
C_S = np.hstack((A,B))
print(C_S)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
[[1 2 5 6]
 [3 4 7 8]]
  • 1
  • 2
C_V = np.vstack((A,B))
print(C_V)
  • 1
  • 2
[[1 2]
 [3 4]
 [5 6]
 [7 8]]
  • 1
  • 2
  • 3
  • 4
# 2.7 数据存储与调用
np.save("data",C_V)  # numpy下面的保存函数,第一个参数是文件名(自定义),第二个参数是要保存的变量名
  • 1
  • 2
# 保存后,如果需要调用查看,可用load函数加载
dy = np.load("data.npy")
print(dy)
  • 1
  • 2
  • 3
[[1 2]
 [3 4]
 [5 6]
 [7 8]]
  • 1
  • 2
  • 3
  • 4
# 2.8 改变数组的形态
#用 reshape 函数 来改变行列维度
arr = np.arange(12)
print(arr)
  • 1
  • 2
  • 3
  • 4
[ 0  1  2  3  4  5  6  7  8  9 10 11]
  • 1
arr1 = arr.reshape(3,4) # 将原始1行12列的一维数组转变为3行4列的数组
print(arr1)
  • 1
  • 2
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
  • 1
  • 2
  • 3
arr2 = np.arange(12).reshape(3,4)  #也可以简单一步写出arr1
print(arr2)
  • 1
  • 2
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
  • 1
  • 2
  • 3
arr3 = arr2.ravel() # ravel函数是将原mn维数组平展成1维数组
print(arr3)
  • 1
  • 2
[ 0  1  2  3  4  5  6  7  8  9 10 11]
  • 1
# 2.9 数组排序与搜索
arr4 = np.array([5,8,3,12,7,9,32,65,22])
arr4s = np.sort(arr4)   #将数组按顺序排列
print(arr4s)
  • 1
  • 2
  • 3
  • 4
[ 3  5  7  8  9 12 22 32 65]
  • 1
arr5 = arr4.reshape(3,3)
maxindex = np.argmax(arr4)
print(maxindex)   # 返回的是最大值的索引位置,如果存在多个最大(小),只返回第一次出现的结果
  • 1
  • 2
  • 3
7
  • 1
minindex = np.argmin(arr4)
print(minindex)   # 返回的是最小值的索引位置
  • 1
  • 2
2
  • 1
print(arr5)
  • 1
[[ 5  8  3]
 [12  7  9]
 [32 65 22]]
  • 1
  • 2
  • 3
maxindex1 = np.argmax(arr5,axis = 0)
minindex1 = np.argmin(arr5,axis = 1)
print(maxindex1)  #返回各列的最大值索引位置
print(minindex1)  # 返回各行的最小值索引位置
  • 1
  • 2
  • 3
  • 4
[2 2 2]
[2 1 2]
  • 1
  • 2

  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/168331?site
推荐阅读
相关标签
  

闽ICP备14008679号