栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

数据科学库考核-matplotlib、numpy、pandas

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据科学库考核-matplotlib、numpy、pandas

目录

(一)第一考核点:编程题

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

答案:

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])

运行结果

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       -1

RangeIndex: 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()

绘制图形

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/580585.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号