Python大数据复习题
第一章
- 创建一个Python脚本,命名为test1.py,实现以下功能。
- 定义一个元组t1=(1,2,‘py’,‘matlab’)和一个空列表list1。
- 以while循环的方式,用append()函数依次向list1中添加t1中的元素。
- 定义一个空字典,命名为dict1。
- 定义一个嵌套列表Li=[‘k’,[3,4,5],(1,2,6),18,50],采用for循环的方式,用setdefault()函数依次将Li中的元素添加到dict1中,其中Li元素对应的键依次为a、b、c、d、e。
答案:
t1=(1,2,'R','py','Matlab')
list1=[]
i = 0
while i<len(t1):
list1.append(t1[i])
i=i+1
print(list1)
dict1={}
Li=['k',[3,4,5],(1,2,6),18,50]
Li2=['a','b','c','d','e']
for index,value in zip(Li2,Li):
dict1.setdefault(index,value)
print(dict1)
- 创建一个Python脚本,命名为test2.py,实现以下功能。
- 定义一个函数,用于计算圆柱体的表面积、体积,函数名为comput,输入参数为底半径(r)、高(h),返回值为表面积(S)、体积(V),返回多值的函数,可以用元组来表示。
- 调用定义的函数comput(),计算底半径(r)=10、高(h)=11的圆柱体表面积和体积,并输出结果。
答案:
def comput(r,h):
s=r**2*3.14*2+2*r*3.14*h
v=r**2*3.14*h
return s,v
print(comput(10,11))
第二章
- 创建一个Python脚本,命名为test1.py,实现以下功能。
- 定义一个列表list1=[1,2,4,6,7,8],将其转化为数组N1。
- 定义一个元组tup1=(1,2,3,4,5,6,),将其转化为数组N2。
- 利用内置函数,定义一个1行6列元素全为1的数组N3。
- 将N1、N2、N3垂直连接,形成一个3行6列的二维数组N4。
- 将N4保存为Python二进制数据文件(npy格式)。
答案:
import numpy as np
list1 = [1,2,3,4,6,8]
N1 = np.array(list1)
tup1 = (1,2,3,4,5,6)
N2 = np.array(tup1)
N3 = [[1]*6 for i in range(1)]
N3 = np.ones([1,6])
N4 = np.vstack((N1,N2,N3))
print(N4)
np.save('N4',N4)
- 创建一个Python脚本,命名为test2.py,实现以下功能。
- 加载练习一中生成的Python二进制数据文件,获得数组N4。
- 提取N4第1行中的第2个、第4个元素,第3行中的第1个、第5个元素,组成一个新的二维数组N5。
- 将N5与练习1中的N1进行水平合并,生成一个新的二维数组N6。
答案:
import numpy as np
N4 = np.load('N4.npy')
N5 = np.array([N4[0][1],N4[0][3],N4[2][0],N4[2][4]])
N1 = np.array(N4[0])
print(N5)
print(N1)
N6 = np.hstack((N5,N1)) #数组的水平连接
print(N6)
- 创建一个Python脚本,命名为test3.py,实现以下功能。
- 生成两个2×2矩阵,并计算矩阵的乘积。
- 求矩阵 A=3-1-13的特征值和特征向量。
- 设有矩A=41187 14-2,试对其进行奇异分解。
- 设有行列式D= 468469568 ,对其转置行列式DT,并计算D和DT。
答案:
import numpy as np
arr = np.matrix([[1,4],[1,6]])
arr1 = np.matrix([[2,4],[3,6]])
a = arr*arr1