Python金融数据挖掘 复习思考题 第2章

第1题

1、题目

生成一个5*5的矩阵,其元素是区间[1,10]中的随机整数。

2、代码

import numpy as np
a = np.random.randint(1,10,25).reshape(5,5)
print(a)

3、结果

[[5 3 7 6 4]
 [3 7 4 3 7]
 [1 7 4 4 3]
 [1 8 5 6 8]
 [8 4 4 2 9]]

第2题

1、题目

生成一个4*4的矩阵,其元素符合正态分布。

2、代码

import numpy as np 
b = np.random.randn(16).reshape(4,4)
print(b)

3、结果

[[-0.33990789 -0.53183933  0.12420977 -0.43573047]
 [-1.47714092 -0.22094742 -0.11919983 -0.19049501]
 [-0.54613945  1.30368604 -0.483711   -0.36169592]
 [-1.50361573 -0.06139576 -1.86228913  1.09515015]]

第3题

1、题目

将(1)中生成的矩阵中第2列元素全部赋值为-1;第3行元素全部赋值为1000;

2、代码

a[:,1]=-1
a[2,:]=1000   #或者a[2]=1000
print(a)

3、结果

[[   5   -1    7    6    4]
 [   3   -1    4    3    7]
 [1000 1000 1000 1000 1000]
 [   1   -1    5    6    8]
 [   8   -1    4    2    9]]

第4题

1、题目

生成一个4*4的矩阵A,其元素为区间[-10,10]中的随机整数。
再随机生成一个由4个元素构成的列向量b,其元素为区间[-5,5]中的随机整数。
对于线性方程组Ax=b,求矩阵A对应的行列式值,根据行列式值是否为0判断其是否有解,如果有解,求其解。

2、代码

import scipy.linalg as sp
A=np.random.randint(-10,10,16).reshape(4,4)
b=np.random.randint(-5,5,4).reshape(-1,1)
print('方程形如Ax=b,其中A=')
print(A)
print('其中b=',b)
print()
dA=np.linalg.det(A)
print("A对应的行列式值为:",dA)
if(abs(dA)>1e-6):
    sv=sp.solve(A,b)
    print("对应的线性方程组解为:",sv)
else:
    print("解不存在。")

3、结果

方程形如Ax=b,其中A=
[[ 3 -1  7 -4]
 [ 9  0  4 -3]
 [ 2 -8  6 -4]
 [ 7 -9 -4  0]]
其中b= [[-5]
 [-1]
 [ 4]
 [ 1]]

A对应的行列式值为: 190.00000000000017
对应的线性方程组解为: [[ 3.6       ]
 [-3.92631579]
 [14.88421053]
 [30.97894737]]

猜你喜欢

转载自blog.csdn.net/xllzuibangla/article/details/125071826