一、使用numpy/pandas编程实现以下题目
0.首先引入所需要的包
import numpy as np
import pandas as pd
1.创建一个长度为8的一维全为0的ndarray对象,然后让第5个元素等于1
nd1 = np.zeros(8)
nd1[4] = 1
nd1
2.创建一个元素为从20到59的ndarray对象
np.arange(20,60)
3.使用np.random.random创建一个10*10的ndarray对象,并打印出最大最小元素
nd3 = np.random.rand(10,10)
print(nd3)
print("最大值为:"+str(np.max(nd3)))
print("最小值为:"+str(np.min(nd3)))
4.创建一个10*10的ndarray对象,且矩阵边界全为1,里面全为0
nd4 = np.zeros(shape=(10,10))
nd4[[0,9]] = 1
nd4[:,[0,9]] = 1
nd4
5.给定一个4维矩阵,并计算得到最后两维的和
nd5 = np.random.randint(0,5,size=(2,3,4,5))
nd5
nd5.sum(axis=(-1,-2))
6.创建一个64随机矩阵和一个43随机矩阵,求两个矩阵的积
nd6_1 = np.random.rand(6,4)
print(nd6_1)
print("************************************************")
nd6_2 = np.random.rand(4,3)
print(nd6_2)
print("************************************************")
nd6_sum = np.matmul(nd6_1,nd6_2)
print("两个矩阵的乘积为:\n"+str(nd6_sum))
7.创建一个5*5的随机矩阵,并让矩阵的每一行的元素都减去该行的平均值
nd7 = np.random.rand(5,5)
print(nd7)
nd7 - nd7.mean(axis=1).reshape(5,1)
8.随机创建一个15*5的矩阵,并将其进行正则化
#【注:正则的概念:假设a是矩阵中的一个元素,max/min分别是矩阵元素的最大最小值,则正则化后a = (a - min)/(max - min)】
nd8 = np.random.randint(0,5,size=(15,5))
print(nd8)
nd8_min = nd8.min()
nd8_max = nd8.max()
nd8_down = nd8_max - nd8_min
result8 = (nd8-nd8_min)/nd8_down
print(result8)
9.DataFrame数据创建
(1) 从NumPy数组创建DataFrame,命名为df1(注:使用numpy生成20个0-100随机数)
(2) 从NumPy数组创建DataFrame,命名为df2(注:使用numpy生成20个0-100固定步长的数)
(3) 从NumPy数组创建DataFrame,命名为df3(使用numpy生成20个指定分布(如标准正态分布)的数)
(4) 将df1、df2、df3按照行合并为新DataFrame,命名为df
(5) 将df1、df2、df3按照列合并为新DataFrame, 命名为df
#(1)从NumPy数组创建DataFrame,命名为df1(注:使用numpy生成20个0-100随机数)
tem1 = np.random.randint(1,100,20)
df1 = pd.DataFrame(tem1)
df1
#(2)从NumPy数组创建DataFrame,命名为df2(注:使用numpy生成20个0-100固定步长的数)
tem2 = np.arange(0,100,5)
df2 = pd.DataFrame(tem2