目录
(一)第一考核点:编程题
1.创建一个长度为10的一维全为0的ndarray对象,然后让第5个元素等于1
2.创建一个元素为从10到49的ndarray对象,使用随机整数完成
3.将第2题的所有元素位置反转
4.用np.random.random创建一个10*10的ndarray对象,并打印出最大最小元素
5.创建一个范围在(0,1)之间的长度为12的等差数列
6.创建一个长度为10的随机数组并排序
7.创建一个长度为10的随机数组并将最大值替换为0
8.正则化一个5*5随机矩阵
【正则的概念:假设a是矩阵中的一个元素,max/min分别是矩阵元素的最大最小值,则正则化后a = (a - min)/(max - min)】
9.检查dataframe是否有缺失值以及统计dataframe中每列缺失值的数量,数据如下:
10、Pandas数据处理,数据如下
1.通过csv方式导入数据集
2. 查看数据的基本信息---占用多大内存,前3行、后三行、各字段描述信息
3.选择数据集前3行数据
4.选择数据集的前3列数据
5.选择数据集的1和3行数据,1和2列数据
6.使用3种方法实现选择前3行前3列数据的方式
7.选择is_date标签列的两种方法
8.选择"height":"job"两个列数据
9.选择最后一行
10.最后一行数据去掉is_date后的数据信息
11.删除is_date这一列的数据
12.查询出is_date=-1的这一列数据
12、绘制以下图形(图中为cos,标记错误,知晓)
(一)第一考核点:编程题
1.创建一个长度为10的一维全为0的ndarray对象,然后让第5个元素等于1
In [1]: import numpy as np
In [2]: t1=np.zeros((1,10))
In [3]: t1
Out[3]: array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])
In [4]: t1[0][4]=1
In [5]: t1
Out[5]: array([[0., 0., 0., 0., 1., 0., 0., 0., 0., 0.]])
2.创建一个元素为从10到49的ndarray对象,使用随机整数完成
In [15]: t2=np.random.randint(10,50,size=49) #
In [16]: t2
Out[16]:
array([24, 11, 34, 26, 26, 44, 12, 36, 45, 23, 23, 46, 41, 26, 37, 38, 49,
18, 47, 41, 31, 24, 27, 14, 44, 44, 38, 16, 36, 35, 18, 35, 45, 16,
22, 44, 13, 37, 42, 46, 17, 30, 43, 47, 48, 28, 23, 27, 13])
3.将第2题的所有元素位置反转
In [18]: t3=t2[::-1] #
In [19]: t3
Out[19]:
array([13, 27, 23, 28, 48, 47, 43, 30, 17, 46, 42, 37, 13, 44, 22, 16, 45,
35, 18, 35, 36, 16, 38, 44, 44, 14, 27, 24, 31, 41, 47, 18, 49, 38,
37, 26, 41, 46, 23, 23, 45, 36, 12, 44, 26, 26, 34, 11, 24])
4.用np.random.random创建一个10*10的ndarray对象,并打印出最大最小元素
In [21]: t4=np.random.random(size=(10,10))
In [22]: t4
Out[22]:
array([[8.21038748e-01, 7.22597306e-01, 6.35004760e-01, 6.30278905e-01,
7.21230897e-01, 1.45551717e-01, 4.21680378e-01, 6.94256860e-01,
4.75163078e-01, 3.78272279e-01],
[2.24963400e-01, 1.68455023e-01, 3.53772831e-01, 2.35938725e-01,
9.67641407e-01, 6.75862785e-01, 6.87747294e-01, 9.00981999e-01,
7.58865179e-01, 7.97948002e-01],
[4.68217204e-01, 4.82410115e-01, 6.33489932e-01, 6.69848545e-01,
3.55811030e-01, 7.10601572e-01, 9.73982045e-01, 8.48176270e-01,
9.69379583e-01, 1.38494603e-01],
[2.92866559e-01, 8.03101171e-01, 1.44894513e-04, 8.92936723e-01,
8.31452039e-01, 2.44574513e-01, 9.13012457e-01, 4.55959156e-01,
8.91557176e-01, 4.70604295e-01],
[4.61874661e-01, 5.67882268e-01, 1.83838662e-01, 3.42681002e-01,
1.86071919e-02, 8.85526983e-02, 3.07047370e-01, 4.84516109e-01,
3.15094460e-04, 8.06711517e-01],
[9.70274601e-01, 4.80280052e-01, 2.41837061e-01, 3.97089968e-01,
4.06165611e-01, 5.18093903e-01, 5.22592066e-01, 7.13036082e-01,
3.67582734e-01, 9.41866669e-01],
[4.40699632e-01, 6.98142447e-01, 2.23398446e-01, 1.58402473e-01,
3.05847039e-01, 8.16281696e-01, 9.97849493e-01, 4.71068381e-01,
2.60841425e-01, 4.54424099e-01],
[8.72116693e-01, 2.53424451e-01, 2.28433159e-01, 2.27822794e-01,
1.23495091e-01, 1.34220369e-01, 7.90260375e-01, 4.20292929e-01,
6.79454559e-01, 8.30187315e-01],
[3.41908576e-01, 5.30555269e-01, 2.07606785e-01, 2.69860458e-01,
5.04628172e-01, 4.35414313e-01, 7.54742041e-01, 9.29408049e-01,
3.89093728e-01, 1.72039662e-01],
[5.74903372e-02, 5.20853974e-01, 4.62071858e-01, 7.35976749e-01,
2.08357038e-01, 7.47241503e-01, 9.16261517e-01, 1.56101167e-01,
8.90492151e-01, 5.00361162e-02]])
In [23]: t4max=t4.max()
In [24]: t4max
Out[24]: 0.9978494934269526
5.创建一个范围在(0,1)之间的长度为12的等差数列
In [25]: t5=np.linspace(0,1,12) #
In [26]: t5
Out[26]:
array([0. , 0.09090909, 0.18181818, 0.27272727, 0.36363636,
0.45454545, 0.54545455, 0.63636364, 0.72727273, 0.81818182,
0.90909091, 1. ])
6.创建一个长度为10的随机数组并排序
In [27]: t6=np.random.randint(1,100,10)
In [28]: t6.sort() #排序
In [29]: t6
Out[29]: array([19, 29, 45, 45, 51, 53, 68, 74, 78, 81])
7.创建一个长度为10的随机数组并将最大值替换为0
In [38]: t7=np.random.randint(1,100,10)
In [39]: t7
Out[39]: array([24, 86, 44, 93, 20, 15, 96, 44, 17, 55])
In [40]: t7[t7.argmax()]=0 #argmax()获取最大值的下标
In [41]: t7
Out[41]: array([24, 86, 44, 93, 20, 15, 0, 44, 17, 55])
8.正则化一个5*5随机矩阵
【正则的概念:假设a是矩阵中的一个元素,max/min分别是矩阵元素的最大最小值,则正则化后a = (a - min)/(max - min)】
#正则的概念:假设a是矩阵中的一个元素,max/min分别是矩阵元素的最大最小值,
#则正则化后a = (a - min)/(max - min)
In [42]: t8=np.random.randint(1,100,(5,5))
In [43]: t8
Out[43]:
array([[11, 29, 31, 33, 52],
[30, 67, 42, 72, 6],
[98, 3, 68, 6, 1],
[ 3, 30, 6, 79, 15],
[48, 89, 34, 38, 65]])
In [44]: t_max=t8.max()
In [45]: t_min=t8.min()
In [46]: t9=(t8-t_min)/(t_max-t_min)
In [47]: t9
Out[47]:
array([[0.10309278, 0.28865979, 0.30927835, 0.32989691, 0.5257732 ],
[0.29896907, 0.68041237, 0.42268041, 0.73195876, 0.05154639],
[1. , 0.02061856, 0.69072165, 0.05154639, 0. ],
[0.02061856, 0.29896907, 0.05154639, 0.80412371, 0.1443299 ],
[0.48453608, 0.90721649, 0.34020619, 0.3814433 , 0.65979381]])
9.检查dataframe是否有缺失值以及统计dataframe中每列缺失值的数量,数据如下:
import pandas as pd
import numpy as np
df = pd.Dataframe({
'a':[1.2,2,3,4],
'b':list('abcd')
})
df.iat[0,0] = np.nan
In [1]: import numpy as np In [2]: t1=np.zeros((1,10)) In [3]: t1 Out[3]: array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]]) In [4]: t1[0][4]=1 In [5]: t1 Out[5]: array([[0., 0., 0., 0., 1., 0., 0., 0., 0., 0.]])
2.创建一个元素为从10到49的ndarray对象,使用随机整数完成
In [15]: t2=np.random.randint(10,50,size=49) #
In [16]: t2
Out[16]:
array([24, 11, 34, 26, 26, 44, 12, 36, 45, 23, 23, 46, 41, 26, 37, 38, 49,
18, 47, 41, 31, 24, 27, 14, 44, 44, 38, 16, 36, 35, 18, 35, 45, 16,
22, 44, 13, 37, 42, 46, 17, 30, 43, 47, 48, 28, 23, 27, 13])
3.将第2题的所有元素位置反转
In [18]: t3=t2[::-1] #
In [19]: t3
Out[19]:
array([13, 27, 23, 28, 48, 47, 43, 30, 17, 46, 42, 37, 13, 44, 22, 16, 45,
35, 18, 35, 36, 16, 38, 44, 44, 14, 27, 24, 31, 41, 47, 18, 49, 38,
37, 26, 41, 46, 23, 23, 45, 36, 12, 44, 26, 26, 34, 11, 24])
4.用np.random.random创建一个10*10的ndarray对象,并打印出最大最小元素
In [21]: t4=np.random.random(size=(10,10))
In [22]: t4
Out[22]:
array([[8.21038748e-01, 7.22597306e-01, 6.35004760e-01, 6.30278905e-01,
7.21230897e-01, 1.45551717e-01, 4.21680378e-01, 6.94256860e-01,
4.75163078e-01, 3.78272279e-01],
[2.24963400e-01, 1.68455023e-01, 3.53772831e-01, 2.35938725e-01,
9.67641407e-01, 6.75862785e-01, 6.87747294e-01, 9.00981999e-01,
7.58865179e-01, 7.97948002e-01],
[4.68217204e-01, 4.82410115e-01, 6.33489932e-01, 6.69848545e-01,
3.55811030e-01, 7.10601572e-01, 9.73982045e-01, 8.48176270e-01,
9.69379583e-01, 1.38494603e-01],
[2.92866559e-01, 8.03101171e-01, 1.44894513e-04, 8.92936723e-01,
8.31452039e-01, 2.44574513e-01, 9.13012457e-01, 4.55959156e-01,
8.91557176e-01, 4.70604295e-01],
[4.61874661e-01, 5.67882268e-01, 1.83838662e-01, 3.42681002e-01,
1.86071919e-02, 8.85526983e-02, 3.07047370e-01, 4.84516109e-01,
3.15094460e-04, 8.06711517e-01],
[9.70274601e-01, 4.80280052e-01, 2.41837061e-01, 3.97089968e-01,
4.06165611e-01, 5.18093903e-01, 5.22592066e-01, 7.13036082e-01,
3.67582734e-01, 9.41866669e-01],
[4.40699632e-01, 6.98142447e-01, 2.23398446e-01, 1.58402473e-01,
3.05847039e-01, 8.16281696e-01, 9.97849493e-01, 4.71068381e-01,
2.60841425e-01, 4.54424099e-01],
[8.72116693e-01, 2.53424451e-01, 2.28433159e-01, 2.27822794e-01,
1.23495091e-01, 1.34220369e-01, 7.90260375e-01, 4.20292929e-01,
6.79454559e-01, 8.30187315e-01],
[3.41908576e-01, 5.30555269e-01, 2.07606785e-01, 2.69860458e-01,
5.04628172e-01, 4.35414313e-01, 7.54742041e-01, 9.29408049e-01,
3.89093728e-01, 1.72039662e-01],
[5.74903372e-02, 5.20853974e-01, 4.62071858e-01, 7.35976749e-01,
2.08357038e-01, 7.47241503e-01, 9.16261517e-01, 1.56101167e-01,
8.90492151e-01, 5.00361162e-02]])
In [23]: t4max=t4.max()
In [24]: t4max
Out[24]: 0.9978494934269526
5.创建一个范围在(0,1)之间的长度为12的等差数列
In [25]: t5=np.linspace(0,1,12) #
In [26]: t5
Out[26]:
array([0. , 0.09090909, 0.18181818, 0.27272727, 0.36363636,
0.45454545, 0.54545455, 0.63636364, 0.72727273, 0.81818182,
0.90909091, 1. ])
6.创建一个长度为10的随机数组并排序
In [27]: t6=np.random.randint(1,100,10)
In [28]: t6.sort() #排序
In [29]: t6
Out[29]: array([19, 29, 45, 45, 51, 53, 68, 74, 78, 81])
7.创建一个长度为10的随机数组并将最大值替换为0
In [38]: t7=np.random.randint(1,100,10)
In [39]: t7
Out[39]: array([24, 86, 44, 93, 20, 15, 96, 44, 17, 55])
In [40]: t7[t7.argmax()]=0 #argmax()获取最大值的下标
In [41]: t7
Out[41]: array([24, 86, 44, 93, 20, 15, 0, 44, 17, 55])
8.正则化一个5*5随机矩阵
【正则的概念:假设a是矩阵中的一个元素,max/min分别是矩阵元素的最大最小值,则正则化后a = (a - min)/(max - min)】
#正则的概念:假设a是矩阵中的一个元素,max/min分别是矩阵元素的最大最小值,
#则正则化后a = (a - min)/(max - min)
In [42]: t8=np.random.randint(1,100,(5,5))
In [43]: t8
Out[43]:
array([[11, 29, 31, 33, 52],
[30, 67, 42, 72, 6],
[98, 3, 68, 6, 1],
[ 3, 30, 6, 79, 15],
[48, 89, 34, 38, 65]])
In [44]: t_max=t8.max()
In [45]: t_min=t8.min()
In [46]: t9=(t8-t_min)/(t_max-t_min)
In [47]: t9
Out[47]:
array([[0.10309278, 0.28865979, 0.30927835, 0.32989691, 0.5257732 ],
[0.29896907, 0.68041237, 0.42268041, 0.73195876, 0.05154639],
[1. , 0.02061856, 0.69072165, 0.05154639, 0. ],
[0.02061856, 0.29896907, 0.05154639, 0.80412371, 0.1443299 ],
[0.48453608, 0.90721649, 0.34020619, 0.3814433 , 0.65979381]])
9.检查dataframe是否有缺失值以及统计dataframe中每列缺失值的数量,数据如下:
import pandas as pd
import numpy as np
df = pd.Dataframe({
'a':[1.2,2,3,4],
'b':list('abcd')
})
df.iat[0,0] = np.nan
In [18]: t3=t2[::-1] #
In [19]: t3
Out[19]:
array([13, 27, 23, 28, 48, 47, 43, 30, 17, 46, 42, 37, 13, 44, 22, 16, 45,
35, 18, 35, 36, 16, 38, 44, 44, 14, 27, 24, 31, 41, 47, 18, 49, 38,
37, 26, 41, 46, 23, 23, 45, 36, 12, 44, 26, 26, 34, 11, 24])
4.用np.random.random创建一个10*10的ndarray对象,并打印出最大最小元素
In [21]: t4=np.random.random(size=(10,10))
In [22]: t4
Out[22]:
array([[8.21038748e-01, 7.22597306e-01, 6.35004760e-01, 6.30278905e-01,
7.21230897e-01, 1.45551717e-01, 4.21680378e-01, 6.94256860e-01,
4.75163078e-01, 3.78272279e-01],
[2.24963400e-01, 1.68455023e-01, 3.53772831e-01, 2.35938725e-01,
9.67641407e-01, 6.75862785e-01, 6.87747294e-01, 9.00981999e-01,
7.58865179e-01, 7.97948002e-01],
[4.68217204e-01, 4.82410115e-01, 6.33489932e-01, 6.69848545e-01,
3.55811030e-01, 7.10601572e-01, 9.73982045e-01, 8.48176270e-01,
9.69379583e-01, 1.38494603e-01],
[2.92866559e-01, 8.03101171e-01, 1.44894513e-04, 8.92936723e-01,
8.31452039e-01, 2.44574513e-01, 9.13012457e-01, 4.55959156e-01,
8.91557176e-01, 4.70604295e-01],
[4.61874661e-01, 5.67882268e-01, 1.83838662e-01, 3.42681002e-01,
1.86071919e-02, 8.85526983e-02, 3.07047370e-01, 4.84516109e-01,
3.15094460e-04, 8.06711517e-01],
[9.70274601e-01, 4.80280052e-01, 2.41837061e-01, 3.97089968e-01,
4.06165611e-01, 5.18093903e-01, 5.22592066e-01, 7.13036082e-01,
3.67582734e-01, 9.41866669e-01],
[4.40699632e-01, 6.98142447e-01, 2.23398446e-01, 1.58402473e-01,
3.05847039e-01, 8.16281696e-01, 9.97849493e-01, 4.71068381e-01,
2.60841425e-01, 4.54424099e-01],
[8.72116693e-01, 2.53424451e-01, 2.28433159e-01, 2.27822794e-01,
1.23495091e-01, 1.34220369e-01, 7.90260375e-01, 4.20292929e-01,
6.79454559e-01, 8.30187315e-01],
[3.41908576e-01, 5.30555269e-01, 2.07606785e-01, 2.69860458e-01,
5.04628172e-01, 4.35414313e-01, 7.54742041e-01, 9.29408049e-01,
3.89093728e-01, 1.72039662e-01],
[5.74903372e-02, 5.20853974e-01, 4.62071858e-01, 7.35976749e-01,
2.08357038e-01, 7.47241503e-01, 9.16261517e-01, 1.56101167e-01,
8.90492151e-01, 5.00361162e-02]])
In [23]: t4max=t4.max()
In [24]: t4max
Out[24]: 0.9978494934269526
5.创建一个范围在(0,1)之间的长度为12的等差数列
In [25]: t5=np.linspace(0,1,12) #
In [26]: t5
Out[26]:
array([0. , 0.09090909, 0.18181818, 0.27272727, 0.36363636,
0.45454545, 0.54545455, 0.63636364, 0.72727273, 0.81818182,
0.90909091, 1. ])
6.创建一个长度为10的随机数组并排序
In [27]: t6=np.random.randint(1,100,10)
In [28]: t6.sort() #排序
In [29]: t6
Out[29]: array([19, 29, 45, 45, 51, 53, 68, 74, 78, 81])
7.创建一个长度为10的随机数组并将最大值替换为0
In [38]: t7=np.random.randint(1,100,10)
In [39]: t7
Out[39]: array([24, 86, 44, 93, 20, 15, 96, 44, 17, 55])
In [40]: t7[t7.argmax()]=0 #argmax()获取最大值的下标
In [41]: t7
Out[41]: array([24, 86, 44, 93, 20, 15, 0, 44, 17, 55])
8.正则化一个5*5随机矩阵
【正则的概念:假设a是矩阵中的一个元素,max/min分别是矩阵元素的最大最小值,则正则化后a = (a - min)/(max - min)】
#正则的概念:假设a是矩阵中的一个元素,max/min分别是矩阵元素的最大最小值,
#则正则化后a = (a - min)/(max - min)
In [42]: t8=np.random.randint(1,100,(5,5))
In [43]: t8
Out[43]:
array([[11, 29, 31, 33, 52],
[30, 67, 42, 72, 6],
[98, 3, 68, 6, 1],
[ 3, 30, 6, 79, 15],
[48, 89, 34, 38, 65]])
In [44]: t_max=t8.max()
In [45]: t_min=t8.min()
In [46]: t9=(t8-t_min)/(t_max-t_min)
In [47]: t9
Out[47]:
array([[0.10309278, 0.28865979, 0.30927835, 0.32989691, 0.5257732 ],
[0.29896907, 0.68041237, 0.42268041, 0.73195876, 0.05154639],
[1. , 0.02061856, 0.69072165, 0.05154639, 0. ],
[0.02061856, 0.29896907, 0.05154639, 0.80412371, 0.1443299 ],
[0.48453608, 0.90721649, 0.34020619, 0.3814433 , 0.65979381]])
9.检查dataframe是否有缺失值以及统计dataframe中每列缺失值的数量,数据如下:
import pandas as pd
import numpy as np
df = pd.Dataframe({
'a':[1.2,2,3,4],
'b':list('abcd')
})
df.iat[0,0] = np.nan
In [25]: t5=np.linspace(0,1,12) #
In [26]: t5
Out[26]:
array([0. , 0.09090909, 0.18181818, 0.27272727, 0.36363636,
0.45454545, 0.54545455, 0.63636364, 0.72727273, 0.81818182,
0.90909091, 1. ])
6.创建一个长度为10的随机数组并排序
In [27]: t6=np.random.randint(1,100,10)
In [28]: t6.sort() #排序
In [29]: t6
Out[29]: array([19, 29, 45, 45, 51, 53, 68, 74, 78, 81])
7.创建一个长度为10的随机数组并将最大值替换为0
In [38]: t7=np.random.randint(1,100,10)
In [39]: t7
Out[39]: array([24, 86, 44, 93, 20, 15, 96, 44, 17, 55])
In [40]: t7[t7.argmax()]=0 #argmax()获取最大值的下标
In [41]: t7
Out[41]: array([24, 86, 44, 93, 20, 15, 0, 44, 17, 55])
8.正则化一个5*5随机矩阵
【正则的概念:假设a是矩阵中的一个元素,max/min分别是矩阵元素的最大最小值,则正则化后a = (a - min)/(max - min)】
#正则的概念:假设a是矩阵中的一个元素,max/min分别是矩阵元素的最大最小值,
#则正则化后a = (a - min)/(max - min)
In [42]: t8=np.random.randint(1,100,(5,5))
In [43]: t8
Out[43]:
array([[11, 29, 31, 33, 52],
[30, 67, 42, 72, 6],
[98, 3, 68, 6, 1],
[ 3, 30, 6, 79, 15],
[48, 89, 34, 38, 65]])
In [44]: t_max=t8.max()
In [45]: t_min=t8.min()
In [46]: t9=(t8-t_min)/(t_max-t_min)
In [47]: t9
Out[47]:
array([[0.10309278, 0.28865979, 0.30927835, 0.32989691, 0.5257732 ],
[0.29896907, 0.68041237, 0.42268041, 0.73195876, 0.05154639],
[1. , 0.02061856, 0.69072165, 0.05154639, 0. ],
[0.02061856, 0.29896907, 0.05154639, 0.80412371, 0.1443299 ],
[0.48453608, 0.90721649, 0.34020619, 0.3814433 , 0.65979381]])
9.检查dataframe是否有缺失值以及统计dataframe中每列缺失值的数量,数据如下:
import pandas as pd
import numpy as np
df = pd.Dataframe({
'a':[1.2,2,3,4],
'b':list('abcd')
})
df.iat[0,0] = np.nan
In [38]: t7=np.random.randint(1,100,10) In [39]: t7 Out[39]: array([24, 86, 44, 93, 20, 15, 96, 44, 17, 55]) In [40]: t7[t7.argmax()]=0 #argmax()获取最大值的下标 In [41]: t7 Out[41]: array([24, 86, 44, 93, 20, 15, 0, 44, 17, 55])
8.正则化一个5*5随机矩阵
【正则的概念:假设a是矩阵中的一个元素,max/min分别是矩阵元素的最大最小值,则正则化后a = (a - min)/(max - min)】
#正则的概念:假设a是矩阵中的一个元素,max/min分别是矩阵元素的最大最小值,
#则正则化后a = (a - min)/(max - min)
In [42]: t8=np.random.randint(1,100,(5,5))
In [43]: t8
Out[43]:
array([[11, 29, 31, 33, 52],
[30, 67, 42, 72, 6],
[98, 3, 68, 6, 1],
[ 3, 30, 6, 79, 15],
[48, 89, 34, 38, 65]])
In [44]: t_max=t8.max()
In [45]: t_min=t8.min()
In [46]: t9=(t8-t_min)/(t_max-t_min)
In [47]: t9
Out[47]:
array([[0.10309278, 0.28865979, 0.30927835, 0.32989691, 0.5257732 ],
[0.29896907, 0.68041237, 0.42268041, 0.73195876, 0.05154639],
[1. , 0.02061856, 0.69072165, 0.05154639, 0. ],
[0.02061856, 0.29896907, 0.05154639, 0.80412371, 0.1443299 ],
[0.48453608, 0.90721649, 0.34020619, 0.3814433 , 0.65979381]])
9.检查dataframe是否有缺失值以及统计dataframe中每列缺失值的数量,数据如下:
import pandas as pd
import numpy as np
df = pd.Dataframe({
'a':[1.2,2,3,4],
'b':list('abcd')
})
df.iat[0,0] = np.nan
#正则的概念:假设a是矩阵中的一个元素,max/min分别是矩阵元素的最大最小值,
#则正则化后a = (a - min)/(max - min)
In [42]: t8=np.random.randint(1,100,(5,5))
In [43]: t8
Out[43]:
array([[11, 29, 31, 33, 52],
[30, 67, 42, 72, 6],
[98, 3, 68, 6, 1],
[ 3, 30, 6, 79, 15],
[48, 89, 34, 38, 65]])
In [44]: t_max=t8.max()
In [45]: t_min=t8.min()
In [46]: t9=(t8-t_min)/(t_max-t_min)
In [47]: t9
Out[47]:
array([[0.10309278, 0.28865979, 0.30927835, 0.32989691, 0.5257732 ],
[0.29896907, 0.68041237, 0.42268041, 0.73195876, 0.05154639],
[1. , 0.02061856, 0.69072165, 0.05154639, 0. ],
[0.02061856, 0.29896907, 0.05154639, 0.80412371, 0.1443299 ],
[0.48453608, 0.90721649, 0.34020619, 0.3814433 , 0.65979381]])
9.检查dataframe是否有缺失值以及统计dataframe中每列缺失值的数量,数据如下:
import pandas as pd
import numpy as np
df = pd.Dataframe({
'a':[1.2,2,3,4],
'b':list('abcd')
})
df.iat[0,0] = np.nan
答案:
import pandas as pd
import numpy as np
df = pd.Dataframe({
'a':[1.2,2,3,4],
'b':list('abcd')})
df.iat[0,0] = np.nan
print("----------------打印数组-------------------")
print(df)
print("--------统计每一列是否有缺失值-------")
df.isnull().any()
print(df.isnull().any())
print("-----------统计a列缺失值的个数---------------")
df.a.isnull().sum()
print(df.a.isnull().sum())
输出结果
----------------打印数组-------------------
a b
0 NaN a
1 2.0 b
2 3.0 c
3 4.0 d
--------统计每一列是否有缺失值-------
a True
b False
dtype: bool
-----------统计a列缺失值的个数---------------
1
完成以下编程任务:
10、Pandas数据处理,数据如下
height,house,car,handsome,job,is_date
1.80,1,0,6.5,2,1
1.62,1,0,5.5,0,1
1.71,0,1,8.5,1,1
1.58,1,1,6.3,1,1
1.68,0,1,5.1,0,0
1.63,1,0,5.3,1,0
1.78,0,0,4.5,0,0
1.64,0,0,7.8,2,0
1.65,0,1,6.6,0,-1
1.通过csv方式导入数据集
2. 查看数据的基本信息---占用多大内存,前3行、后三行、各字段描述信息
3.选择数据集前3行数据
4.选择数据集的前3列数据
5.选择数据集的1和3行数据,1和2列数据
6.使用3种方法实现选择前3行前3列数据的方式
7.选择is_date标签列的两种方法
8.选择"height":"job"两个列数据
9.选择最后一行
10.最后一行数据去掉is_date后的数据信息
11.删除is_date这一列的数据
12.查询出is_date=-1的这一列数据
# -*-coding:utf-8-*-
import pandas as pd
#1-通过csv方式导入数据集
file_path="./123.csv"
df=pd.read_csv(file_path)
#2-查看数据的基本信息—占用多大内存,前3行、后三行、各字段描述信息
print("---------------第2题-------------------")
print(df.head(3)) #前3行
print(df.tail(3)) #后3行
print(df.info()) #各字段描述信息
#3-选择数据集前3行数据
print("---------------第3题-------------------")
print(df[:3])
#4-选择数据集的前3列数据
print("---------------第4题-------------------")
print(df.iloc[:,:3])
#5-选择数据集的1和3行数据,1和2列数据
print("---------------第5题-------------------")
print(df.iloc[[0,2],[0,1]])
#6-使用3种方法实现选择前3行前3列数据的方式
print("---------------第6题-------------------")
print(df.iloc[:3,:3])
print(df.iloc[[0,1,2],[0,1,2]])
print(df.loc[:2,["height","house","car"]])
#7-选择is_date标签列的两种方法
print("---------------第7题-------------------")
print(df.loc[5])
print(df.loc[:,"is_date"])
#8-选择"height":"job"两个列数据
print("---------------第8题-------------------")
print(df.loc[:,["height","job"]])
#9-选择最后一行
print("---------------第9题-------------------")
print(df.tail(1)) #后1行
#10-最后一行数据去掉is_date后的数据信息
print("---------------第10题-------------------")
print(df.drop(columns="is_date").tail(1))
#11-删除is_date这一列的数据
print("---------------第11题-------------------")
print(df.drop(columns="is_date"))
#12-查询出is_date=-1的这一行数据
print("---------------第12题-------------------")
print(df[df["is_date"]==-1])
3.选择数据集前3行数据
4.选择数据集的前3列数据
5.选择数据集的1和3行数据,1和2列数据
6.使用3种方法实现选择前3行前3列数据的方式
7.选择is_date标签列的两种方法
8.选择"height":"job"两个列数据
9.选择最后一行
10.最后一行数据去掉is_date后的数据信息
11.删除is_date这一列的数据
12.查询出is_date=-1的这一列数据
# -*-coding:utf-8-*-
import pandas as pd
#1-通过csv方式导入数据集
file_path="./123.csv"
df=pd.read_csv(file_path)
#2-查看数据的基本信息—占用多大内存,前3行、后三行、各字段描述信息
print("---------------第2题-------------------")
print(df.head(3)) #前3行
print(df.tail(3)) #后3行
print(df.info()) #各字段描述信息
#3-选择数据集前3行数据
print("---------------第3题-------------------")
print(df[:3])
#4-选择数据集的前3列数据
print("---------------第4题-------------------")
print(df.iloc[:,:3])
#5-选择数据集的1和3行数据,1和2列数据
print("---------------第5题-------------------")
print(df.iloc[[0,2],[0,1]])
#6-使用3种方法实现选择前3行前3列数据的方式
print("---------------第6题-------------------")
print(df.iloc[:3,:3])
print(df.iloc[[0,1,2],[0,1,2]])
print(df.loc[:2,["height","house","car"]])
#7-选择is_date标签列的两种方法
print("---------------第7题-------------------")
print(df.loc[5])
print(df.loc[:,"is_date"])
#8-选择"height":"job"两个列数据
print("---------------第8题-------------------")
print(df.loc[:,["height","job"]])
#9-选择最后一行
print("---------------第9题-------------------")
print(df.tail(1)) #后1行
#10-最后一行数据去掉is_date后的数据信息
print("---------------第10题-------------------")
print(df.drop(columns="is_date").tail(1))
#11-删除is_date这一列的数据
print("---------------第11题-------------------")
print(df.drop(columns="is_date"))
#12-查询出is_date=-1的这一行数据
print("---------------第12题-------------------")
print(df[df["is_date"]==-1])
5.选择数据集的1和3行数据,1和2列数据
6.使用3种方法实现选择前3行前3列数据的方式
7.选择is_date标签列的两种方法
8.选择"height":"job"两个列数据
9.选择最后一行
10.最后一行数据去掉is_date后的数据信息
11.删除is_date这一列的数据
12.查询出is_date=-1的这一列数据
# -*-coding:utf-8-*-
import pandas as pd
#1-通过csv方式导入数据集
file_path="./123.csv"
df=pd.read_csv(file_path)
#2-查看数据的基本信息—占用多大内存,前3行、后三行、各字段描述信息
print("---------------第2题-------------------")
print(df.head(3)) #前3行
print(df.tail(3)) #后3行
print(df.info()) #各字段描述信息
#3-选择数据集前3行数据
print("---------------第3题-------------------")
print(df[:3])
#4-选择数据集的前3列数据
print("---------------第4题-------------------")
print(df.iloc[:,:3])
#5-选择数据集的1和3行数据,1和2列数据
print("---------------第5题-------------------")
print(df.iloc[[0,2],[0,1]])
#6-使用3种方法实现选择前3行前3列数据的方式
print("---------------第6题-------------------")
print(df.iloc[:3,:3])
print(df.iloc[[0,1,2],[0,1,2]])
print(df.loc[:2,["height","house","car"]])
#7-选择is_date标签列的两种方法
print("---------------第7题-------------------")
print(df.loc[5])
print(df.loc[:,"is_date"])
#8-选择"height":"job"两个列数据
print("---------------第8题-------------------")
print(df.loc[:,["height","job"]])
#9-选择最后一行
print("---------------第9题-------------------")
print(df.tail(1)) #后1行
#10-最后一行数据去掉is_date后的数据信息
print("---------------第10题-------------------")
print(df.drop(columns="is_date").tail(1))
#11-删除is_date这一列的数据
print("---------------第11题-------------------")
print(df.drop(columns="is_date"))
#12-查询出is_date=-1的这一行数据
print("---------------第12题-------------------")
print(df[df["is_date"]==-1])
7.选择is_date标签列的两种方法
8.选择"height":"job"两个列数据
9.选择最后一行
10.最后一行数据去掉is_date后的数据信息
11.删除is_date这一列的数据
12.查询出is_date=-1的这一列数据
# -*-coding:utf-8-*-
import pandas as pd
#1-通过csv方式导入数据集
file_path="./123.csv"
df=pd.read_csv(file_path)
#2-查看数据的基本信息—占用多大内存,前3行、后三行、各字段描述信息
print("---------------第2题-------------------")
print(df.head(3)) #前3行
print(df.tail(3)) #后3行
print(df.info()) #各字段描述信息
#3-选择数据集前3行数据
print("---------------第3题-------------------")
print(df[:3])
#4-选择数据集的前3列数据
print("---------------第4题-------------------")
print(df.iloc[:,:3])
#5-选择数据集的1和3行数据,1和2列数据
print("---------------第5题-------------------")
print(df.iloc[[0,2],[0,1]])
#6-使用3种方法实现选择前3行前3列数据的方式
print("---------------第6题-------------------")
print(df.iloc[:3,:3])
print(df.iloc[[0,1,2],[0,1,2]])
print(df.loc[:2,["height","house","car"]])
#7-选择is_date标签列的两种方法
print("---------------第7题-------------------")
print(df.loc[5])
print(df.loc[:,"is_date"])
#8-选择"height":"job"两个列数据
print("---------------第8题-------------------")
print(df.loc[:,["height","job"]])
#9-选择最后一行
print("---------------第9题-------------------")
print(df.tail(1)) #后1行
#10-最后一行数据去掉is_date后的数据信息
print("---------------第10题-------------------")
print(df.drop(columns="is_date").tail(1))
#11-删除is_date这一列的数据
print("---------------第11题-------------------")
print(df.drop(columns="is_date"))
#12-查询出is_date=-1的这一行数据
print("---------------第12题-------------------")
print(df[df["is_date"]==-1])
9.选择最后一行
10.最后一行数据去掉is_date后的数据信息
11.删除is_date这一列的数据
12.查询出is_date=-1的这一列数据
# -*-coding:utf-8-*-
import pandas as pd
#1-通过csv方式导入数据集
file_path="./123.csv"
df=pd.read_csv(file_path)
#2-查看数据的基本信息—占用多大内存,前3行、后三行、各字段描述信息
print("---------------第2题-------------------")
print(df.head(3)) #前3行
print(df.tail(3)) #后3行
print(df.info()) #各字段描述信息
#3-选择数据集前3行数据
print("---------------第3题-------------------")
print(df[:3])
#4-选择数据集的前3列数据
print("---------------第4题-------------------")
print(df.iloc[:,:3])
#5-选择数据集的1和3行数据,1和2列数据
print("---------------第5题-------------------")
print(df.iloc[[0,2],[0,1]])
#6-使用3种方法实现选择前3行前3列数据的方式
print("---------------第6题-------------------")
print(df.iloc[:3,:3])
print(df.iloc[[0,1,2],[0,1,2]])
print(df.loc[:2,["height","house","car"]])
#7-选择is_date标签列的两种方法
print("---------------第7题-------------------")
print(df.loc[5])
print(df.loc[:,"is_date"])
#8-选择"height":"job"两个列数据
print("---------------第8题-------------------")
print(df.loc[:,["height","job"]])
#9-选择最后一行
print("---------------第9题-------------------")
print(df.tail(1)) #后1行
#10-最后一行数据去掉is_date后的数据信息
print("---------------第10题-------------------")
print(df.drop(columns="is_date").tail(1))
#11-删除is_date这一列的数据
print("---------------第11题-------------------")
print(df.drop(columns="is_date"))
#12-查询出is_date=-1的这一行数据
print("---------------第12题-------------------")
print(df[df["is_date"]==-1])
11.删除is_date这一列的数据
12.查询出is_date=-1的这一列数据
# -*-coding:utf-8-*-
import pandas as pd
#1-通过csv方式导入数据集
file_path="./123.csv"
df=pd.read_csv(file_path)
#2-查看数据的基本信息—占用多大内存,前3行、后三行、各字段描述信息
print("---------------第2题-------------------")
print(df.head(3)) #前3行
print(df.tail(3)) #后3行
print(df.info()) #各字段描述信息
#3-选择数据集前3行数据
print("---------------第3题-------------------")
print(df[:3])
#4-选择数据集的前3列数据
print("---------------第4题-------------------")
print(df.iloc[:,:3])
#5-选择数据集的1和3行数据,1和2列数据
print("---------------第5题-------------------")
print(df.iloc[[0,2],[0,1]])
#6-使用3种方法实现选择前3行前3列数据的方式
print("---------------第6题-------------------")
print(df.iloc[:3,:3])
print(df.iloc[[0,1,2],[0,1,2]])
print(df.loc[:2,["height","house","car"]])
#7-选择is_date标签列的两种方法
print("---------------第7题-------------------")
print(df.loc[5])
print(df.loc[:,"is_date"])
#8-选择"height":"job"两个列数据
print("---------------第8题-------------------")
print(df.loc[:,["height","job"]])
#9-选择最后一行
print("---------------第9题-------------------")
print(df.tail(1)) #后1行
#10-最后一行数据去掉is_date后的数据信息
print("---------------第10题-------------------")
print(df.drop(columns="is_date").tail(1))
#11-删除is_date这一列的数据
print("---------------第11题-------------------")
print(df.drop(columns="is_date"))
#12-查询出is_date=-1的这一行数据
print("---------------第12题-------------------")
print(df[df["is_date"]==-1])
# -*-coding:utf-8-*-
import pandas as pd
#1-通过csv方式导入数据集
file_path="./123.csv"
df=pd.read_csv(file_path)
#2-查看数据的基本信息—占用多大内存,前3行、后三行、各字段描述信息
print("---------------第2题-------------------")
print(df.head(3)) #前3行
print(df.tail(3)) #后3行
print(df.info()) #各字段描述信息
#3-选择数据集前3行数据
print("---------------第3题-------------------")
print(df[:3])
#4-选择数据集的前3列数据
print("---------------第4题-------------------")
print(df.iloc[:,:3])
#5-选择数据集的1和3行数据,1和2列数据
print("---------------第5题-------------------")
print(df.iloc[[0,2],[0,1]])
#6-使用3种方法实现选择前3行前3列数据的方式
print("---------------第6题-------------------")
print(df.iloc[:3,:3])
print(df.iloc[[0,1,2],[0,1,2]])
print(df.loc[:2,["height","house","car"]])
#7-选择is_date标签列的两种方法
print("---------------第7题-------------------")
print(df.loc[5])
print(df.loc[:,"is_date"])
#8-选择"height":"job"两个列数据
print("---------------第8题-------------------")
print(df.loc[:,["height","job"]])
#9-选择最后一行
print("---------------第9题-------------------")
print(df.tail(1)) #后1行
#10-最后一行数据去掉is_date后的数据信息
print("---------------第10题-------------------")
print(df.drop(columns="is_date").tail(1))
#11-删除is_date这一列的数据
print("---------------第11题-------------------")
print(df.drop(columns="is_date"))
#12-查询出is_date=-1的这一行数据
print("---------------第12题-------------------")
print(df[df["is_date"]==-1])
运行结果
E:pythonProject5venvscriptspython.exe E:/pythonProject5/作业2.py ---------------第2题------------------- height house car handsome job is_date 0 1.80 1 0 6.5 2 1 1 1.62 1 0 5.5 0 1 2 1.71 0 1 8.5 1 1 height house car handsome job is_date 6 1.78 0 0 4.5 0 0 7 1.64 0 0 7.8 2 0 8 1.65 0 1 6.6 0 -1RangeIndex: 9 entries, 0 to 8 Data columns (total 6 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 height 9 non-null float64 1 house 9 non-null int64 2 car 9 non-null int64 3 handsome 9 non-null float64 4 job 9 non-null int64 5 is_date 9 non-null int64 dtypes: float64(2), int64(4) memory usage: 560.0 bytes None ---------------第3题------------------- height house car handsome job is_date 0 1.80 1 0 6.5 2 1 1 1.62 1 0 5.5 0 1 2 1.71 0 1 8.5 1 1 ---------------第4题------------------- height house car 0 1.80 1 0 1 1.62 1 0 2 1.71 0 1 3 1.58 1 1 4 1.68 0 1 5 1.63 1 0 6 1.78 0 0 7 1.64 0 0 8 1.65 0 1 ---------------第5题------------------- height house 0 1.80 1 2 1.71 0 ---------------第6题------------------- height house car 0 1.80 1 0 1 1.62 1 0 2 1.71 0 1 height house car 0 1.80 1 0 1 1.62 1 0 2 1.71 0 1 height house car 0 1.80 1 0 1 1.62 1 0 2 1.71 0 1 ---------------第7题------------------- height 1.63 house 1.00 car 0.00 handsome 5.30 job 1.00 is_date 0.00 Name: 5, dtype: float64 0 1 1 1 2 1 3 1 4 0 5 0 6 0 7 0 8 -1 Name: is_date, dtype: int64 ---------------第8题------------------- height job 0 1.80 2 1 1.62 0 2 1.71 1 3 1.58 1 4 1.68 0 5 1.63 1 6 1.78 0 7 1.64 2 8 1.65 0 ---------------第9题------------------- height house car handsome job is_date 8 1.65 0 1 6.6 0 -1 ---------------第10题------------------- height house car handsome job 8 1.65 0 1 6.6 0 ---------------第11题------------------- height house car handsome job 0 1.80 1 0 6.5 2 1 1.62 1 0 5.5 0 2 1.71 0 1 8.5 1 3 1.58 1 1 6.3 1 4 1.68 0 1 5.1 0 5 1.63 1 0 5.3 1 6 1.78 0 0 4.5 0 7 1.64 0 0 7.8 2 8 1.65 0 1 6.6 0 ---------------第12题------------------- height house car handsome job is_date 8 1.65 0 1 6.6 0 -1 Process finished with exit code 0
11、绘制以下图形
代码
# -*-coding:utf-8-*-
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.figure(figsize=(10,8),dpi=80)
y1=np.linspace(7,25,num=10)
y2=np.linspace(6,14,num=10)
print(y1)
print(y2)
plt.plot(range(1,11),y1,color="red",line)
plt.plot(range(1,11),y2,color="red",line)
plt.xlabel("x")
plt.title("这是一个用图表")
plt.show()
输出结果
12、绘制以下图形(图中为cos,标记错误,知晓)
# -*-coding:utf-8-*-
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import font_manager
plt.figure(figsize=(15,8),dpi=80)
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 步骤二(解决坐标轴负数的负号显示问题)
x=np.arange(-10,10,0.01)
y1=np.sin(x)
y2=np.cos(x)
y3=np.tanh(x)
ax1 = plt.subplot(221)
plt.plot(x,y1,color="b",linewidth=1)
plt.title("This is sin function!")
ax2 = plt.subplot(222)
plt.plot(x,y2,color="b",linewidth=1)
plt.title("This is cos function!")
ax1 = plt.subplot(212)
plt.plot(x,y3,color="b",line,linewidth=5)
plt.title("This is tanh function!")
plt.show()
绘制图形



