谨记第一次作业用到的内容,应该是对的吧
哈哈哈
- 读取数据,获取基本信息。
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都行
- 使用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')
- 对某列数据进行等频离散化
现已使用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]这样子
- 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。不知这样解释对不对。
- 把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)的研究生生活开始了,还好老师像人间小天使一样,同学们也超级好,学校物质条件也非常棒,小菜鸡本着学到就是赚到的原则,快乐学习,快乐记录~~~~