师从SNOW
数值处理-Numpy库的使用
import numpy as np
#1、Numpy数组的创建
arr=np.array([1,2,3,4,5])
print(arr)
print(type(arr))
arr=np.array([[1,2,3],[2,3,4],[3,4,5],[4,5,6]])#创建二维数组
print(arr)
print(type(arr))
print("数组形状:",arr.shape)
#2、索引和切片
print(arr[0])
print(arr[0:3])
print(arr[1][2])
#运算 +-*/对应位置上的元素进行
print([1,2,3]+[4,5,6])#[1,2,3,4,5,6]
print(np.array([1,2,3])+np.array([4,5,6]))#[5,7,9]
print(np.array([1,2,3])*np.array([4,5,6]))#[4,10,18]
#数组形状操作
arr=np.array([[1,2,3],[2,3,4],[3,4,5],[4,5,6]])
print(arr.shape)
new_arr=arr.reshape(2,6)
print(new_arr,"新的数组的形状是:",new_arr.shape)
new_arr_T=new_arr.transpose()
print(new_arr_T,"新的数组的转置的形状是:",new_arr_T.shape)
#进阶使用 线性代数 统计
arr1=np.array([1,2,3])
arr2=np.array([4,5,6])
arr1_dot_arr2=np.dot(arr1,arr2)
print(arr1_dot_arr2)
arr=np.array([[5,2,3],[2,7,4],[99,4,5],[4,15,6]])
print("数组的平均值",np.mean(arr))
print("数组的平均值",arr.mean())
print("数组的最大值",np.max(arr))
print("数组的最小值",arr.min())
print("数组的标准差",arr.std())
print("数组的排序",np.sort(arr.reshape(-1)))#numpy的函数
print(arr[(arr>10)&(arr<15)])#筛选 & 按位 与 等效于在每一位上进行一次and
print(arr[(arr>10)|(arr<5)]) #筛选 | 按位 或 等效于在每一位上进行一次or
Numpy的课后练习
"""
3.2 Numpy课后练习
4*4 随机数组 只保留10以内的数 并计算出所有元素的和
"""
np.random.seed(1234444) #固定随机数种子
print(np.random.rand()) #0-1之间随机浮点数
arr=np.random.randint(0,100,16).reshape(4,4) #0-100之间的随机整数
print(arr)
print(np.sum(arr[arr<=10]))
表格处理-Pandas库的使用
import pandas as pd
import pandas as np
"""
鸢尾花数据集.xlsl是文件名 Sheet1是文件位置
"""
df =pd.read_excel("鸢尾花数据集.xlsl","Sheet1",engine="openpyxl")
#打印文件前十行
print(df.head(10))
print(type(df))
arr=np.array([1,3,4])
data={'样本号':[1,2,3],'萼片长(cm)':[8,9,2.1,4.5],'类型_num':[0,0,1]}
"可以认为DataFrame是pandas提供的excell表"
datadf=pd.DataFrame(data)
print(datadf)
#基础信息
print(df.head()) #默认是前5行
print(df.info) #打印基础信息
#缺失值处理
df.dropna() #将缺失值所在的行全部去掉
#将所有数据的类型改为float类型
# df['类型_num']=df['类型_num'].astype(float)
print(df.info)
#选择和过滤
#筛选出 类型_num=1的数据
df_1=df[df['类型_num']==1]
print(df_1.head())
print(df_1.info())
lb=df['花萼宽(cm)'].mean()-3*df['花萼宽(cm)'].std()
ub=df['花萼宽(cm)'].mean()+3*df['花萼宽(cm)'].std()
selected_df=df[df['花萼宽(cm)']>=lb&df['花萼宽(cm)']<=ub]
print(selected_df)
Pandas的课后练习
import pandas as pd
import numpy as np
data={'姓名':["张三","李四","王五","老六","赵七"],
'身高':[175 for i in range(5)],
'体重':[50 for i in range(5)],
'成绩':np.random.randint(40,90,5)}
df=pd.DataFrame(data)
print(df)
print(df[df['成绩']==max(df['成绩'])])
print("本班的平均分是",np.mean(df['成绩']))
new_df=df[df['成绩']<60]
print("本班这次考试不及格的同学有:",new_df['姓名'])
图像生成-Matplotlib库的使用
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 解决汉字在图像中显示不了的问题
mpl.rcParams['axes.unicode_minus'] = False # 解决减号在图像中显示不了的问题
x = np.linspace(0, 10, 10)
y = np.sin(x)
x2 = np.linspace(0, 10, 100)
y2 = np.sin(x2) # 修正这里,使用 x2 计算 y2
# plt.plot(x,y)
# #设置图像的标题
# plt.title("y=sin(x)")
# #设置x轴的标题
# plt.xlabel("x")
# #设置y轴的标题
# plt.ylabel("y")
plt.scatter(x, y, marker='*', c='r', label="数据点") # 散点图
#marker='*'是设置数据点的形状,c='r'是设置线的颜色
plt.plot(x2, y2, linestyle='--', label="拟合结果") # 折线图
#linestyle='--'设置线的形状
plt.legend() # 显示图例 即label=...
plt.show()
若有侵权,请联系作者