1.创建一个Python脚本,实现以下功能。
(1)定义一个列表1ist1=[1,2,4,6,7,8],将其转化为数组N1。
(2)定义一个元组tup1=(1,2,3,4,5,6),将其转化为数组N2。
(3)利用内置函数,定义一个1行6列元素全为1的数组N3。
(4)将N1、N2、N3垂直连接,形成一个3行6列的二维数组N4。
(5)将N4保存为Python二进制数据文件(npy格式)。
In:import numpy as np
In:list1=[1,2,4,6,7,8]
N1=np.array(list1)
N1
Out:array([1, 2, 4, 6, 7, 8])
In:tup1=(1,2,3,4,5,6)
N2=np.array(tup1)
N2
Out:array([1, 2, 3, 4, 5, 6])
In:N3=np.array([1,1,1,1,1,1])
N3
Out:array([1, 1, 1, 1, 1, 1])
In:N4=np.vstack((N1,N2,N3))
N4
Out:array([[1, 2, 4, 6, 7, 8],
[1, 2, 3, 4, 5, 6],
[1, 1, 1, 1, 1, 1]])
In:np.save('data',N4)
In:np.load('data.npy')
Out:array([[1, 2, 4, 6, 7, 8],
[1, 2, 3, 4, 5, 6],
[1, 1, 1, 1, 1, 1]])
2.创建一个Python脚本,实现以下功能。
(1)加载练习1中生成的Python二进制数据文件,获得数组N4。
(2)提取N4第1行中的第2个、第4个元素,第3行中的第1个、第5个元素,组成
一个新的二维数组N5。
(3)将N5与练习1中的N1进行水平合并,生成一个新的二维数组N6。
In:N4
Out:array([[1, 2, 4, 6, 7, 8],
[1, 2, 3, 4, 5, 6],
[1, 1, 1, 1, 1, 1]])
In:N5 = np.array([N4[0][1],N4[0][3],N4[2][0],N4[2][4]])
N5
Out:array([2, 6, 1, 1])
In:N6 = np.hstack((N5,N1))
N6
Out:array([2, 6, 1, 1, 1, 2, 4, 6, 7, 8])
3.矩阵计算
(1)
In:arr1=np.matrix([[1,5],[5,6]])
arr2=np.matrix([[6,5],[8,2]])
In:arr3=arr1*arr2
arr3
Out:matrix([[46, 15],
[78, 37]])
(2)
In:A=np.mat("3,-1;-1,3")
A
Out:matrix([[ 3, -1],
[-1, 3]])
In:A_value,A_vecotr = np.linalg.eig(A)
A_value,A_vecotr
Out:(array([4., 2.]),
matrix([[ 0.70710678, 0.70710678],
[-0.70710678, 0.70710678]]))
(3)
In:B=np.mat("4,11,14;8,7,-2")
B
Out:matrix([[ 4, 11, 14],
[ 8, 7, -2]])
In:C=np.linalg.svd(B, full_matrices=False)
C
Out:(matrix([[ 0.9486833 , -0.31622777],
[ 0.31622777, 0.9486833 ]]),
array([18.97366596, 9.48683298]),
matrix([[ 0.33333333, 0.66666667, 0.66666667],
[ 0.66666667, 0.33333333, -0.66666667]]))
(4)
In:D=np.mat("4,6,8;4,6,9;5,6,8")
D
Out:matrix([[4, 6, 8],
[4, 6, 9],
[5, 6, 8]])
In:E=D.T
E
Out:matrix([[4, 4, 5],
[6, 6, 6],
[8, 9, 8]])
In:x=np.linalg.det(D)
x
Out:5.999999999999998
In:y=np.linalg.det(E)
y
Out:6.0
文章出处登录后可见!
已经登录?立即刷新