课程作业1-数据预处理以及 python对函数求导

谨记第一次作业用到的内容,应该是对的吧
哈哈哈

  1. 读取数据,获取基本信息。
1.	现已使用Pandas读取数据集challenge.csv
•	请提取该数据集的字段名称,将结果存为cols
•	请获取给数据的字段和样本数量,将结果分别存为col_num和sam_num
•	请获取该数据集的前五行记录,将最后的DataFrame存为five_data

开始答题:
import pandas as pd
titanic = pd.read_csv("challenge.csv")

# 获取字段名称
cols = titanic.columns.values # 还可以list(titanic.columns)

# 获取字段数量
col_num = len(cols) 

# 获取样本数量
sam_num = len(titanic) # 还可以 titanic.shape[0] 求行数

# 获取样本前5行样本
five_data= titanic.head()  # 括号里写不写5都行
  1. 使用Numpy生成服从均匀分布的一维数据集,样本容量为100
import numpy as np
from scipy.stats import stats # 这个模块可以验证数据分布情况
test_data = np.random.random(size=100) #生成样本数据集

# 验证分布
model  =  stats.kstest(test_data,’norm’) # 验证正态分布,是这样吧 

3.判断是否有缺失值以及缺失值替换

使用Pandas生成Series对象example_data
•	请使用isnull()函数确定example_data是否含有缺失值,将最后的结果存为boolean_array
•	请使用fillna()函数使用字符串missing替换缺失值,将替换后的Series对象存为new_data

开始答题:
import pandas as pd
import numpy as np
example_data = pd.Series([1,2,3,np.nan,4])  # 这样生成一Series对象

# 判断是否含有缺失值
boolean_array = example_data.isnull() # 还可以pd.isnull(example_data)
# 缺失值替换
new_data = example_data.fillna('missing')
  1. 对某列数据进行等频离散化
现已使用Pandas读取数据集birthrate.csv
请对该数据集的birth_rates特征使用四分位数作为切分点,通过qcut()函数完成等频离散化; 将最后的结果存为data_qcut
import pandas  as pd
data = pd.read_csv('birthrate.csv')

#请在下面作答
data_qcut = pd.qcut(data["birth_rates"],4) # 4代表按四分位数,这个参数也可以用类似[0,0.25,0.5,0.75,1]这样子
  1. python对函数求导并得到具体导数
import sympy as sp # 使用这个库求导
import numpy as np
x = sp.symbols('x') # 说明x是个自变量符号
# 假如x,y都是自变量符号,就写成这样x,y = sp.symbols('x y')

# y是x的三次函数,**代表幂运算
y = x**3 - 6*x**2 + 11 *x  - 6 

#下面y对x求导,此时得到的结果是一个表达式,还不能用于数值计算
# 求偏导也是sp.diff()
grad = sp.diff(y,x) 

# 把具体值带入导数表达式  表达式.evalf()
x1 = 1 
grad_val = grad.evalf(subs={x:x1}) # 这样就是导数值啦
 #用x1替换grad表达式里的符号x。不知这样解释对不对。 
  1. 把5中的函数画出来
# 绘制函数图像
# 方便显示汉字和负号
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] 
plt.rcParams['axes.unicode_minus'] = False 

x = np.arange(0, 5, 0.1) # 产生自变量x,0到5之间,步长0.1
y = x**3 - 6*x**2 + 11 *x  - 6

plt.subplot(121),plt.plot(x,y),plt.title("函数图像") 
plt.subplot(122),plt.plot(x,y),plt.title("函数图像")
plt.show()
 # 这样记录一下画几幅两幅图的方法 
 # plt.subplot(121)三个参数分别代表画1行2列图像中的第一幅图,后边跟着就是这幅图像的描述
 #plt.subplot(122)三个参数代表画1行2列图像中的第二幅图像,后面跟着这第二幅图像的描述

其(ya)乐(li)无(shan)穷(da)的研究生生活开始了,还好老师像人间小天使一样,同学们也超级好,学校物质条件也非常棒,小菜鸡本着学到就是赚到的原则,快乐学习,快乐记录~~~~

上一篇:读书报告


下一篇:python学习教程23-python+pandas数据分析练习-3