pandas和numpy库的应用
练习用的大部分数据来自kaggle
主要用于处理一些数据
以读取csv文件为例
from matplotlib import pyplot as plt
import pandas as pd
x=pd.read_csv('/Users/蔡洪浩/Desktop/countries.csv')
#y=x[10]
y=x.country=='China'
#print(y) bool值类型
#z=x[y] 如果y是真则输出z,也就是把国家为China的全部输出
#print(z)
z=x[2:10]#利用切片的知识可以把2到10的所有信息输出
print(z)
再用上画图各种胡搞
from matplotlib import pyplot as plt
import pandas as pd
x=pd.read_csv('/Users/蔡洪浩/Desktop/countries.csv')
#y=x[10]
china_data=x.country=='China'
china=x[china_data]
US_data=x.country=='United States'
US=x[US_data]
#上面分别把两个国家的数据存起来
#print(y)
#z=x[y]
#print(z)
#print(x.year[2:10])
plt.plot(china.year,china.population/10**8,label='china')
#这里10**8就是避免y轴出现科学计数法,下同
plt.plot(US.year,US.population/10**8,label='US')
#plt.plot(china.year,china.population/china.population.iloc[0],label='china')
#plt.plot(US.year,US.population/US.population.iloc[0],label='US')
#这种除以自己第一年的人数就是反应的增长率的问题
#iloc函数就是调出某一行的数据
plt.legend()
#print(z)
导入数据使用pandas的一些练习
from matplotlib import pyplot as plt
import pandas as pd
pd.set_option('display.max_row',100)
pd.set_option('display.max_columns',100)
#不想看到省略号,相当于设置行距之类的
#users=['a','b','c','d']
df=pd.read_csv('/Users/蔡洪浩/Desktop/diabetes.csv',index_col=0)
#df=pd.read_csv('/Users/蔡洪浩/Desktop/diabetes.csv',index_col=0,names=users)
#把开头的序号变成名字
#就可以使用print(df['a']) 就是把a那一列输出
#也可以使用print(df.a) 但是有时候会出错
#甚至可以用print(df.a+','+df.c) 就是把两列数字并行输出
#df['new name']=df.c+df.a 这个表示的是把我们新生成的数据插入到df中。便于我们来进行对比。
#index_col =0 取消前面的序号
#print(df.describe()) 那道数据的第一步,看总体数据的描述
print(df)
#print(df.head())
#plt.scatter(df.Glucose,df.BloodPressure)
#plt.hist(df.BloodPressure)
numpy利用index来完成一些事
from matplotlib import pyplot as plt
import numpy as np
v=np.array([1,23,4,5,723,12,4])
v1=np.array([[1,2,4,55,1],
[1,1,1,1,1]])
#list 向矩阵的转换
#后者为二维矩阵
#print(type(v))
#print(v1)
#k=[0,4]
#j=[np.arange(2),k] +=100
#print(np.arange(2))
#arange(x) 就是生成0-1的数字
#print(j)
#矩阵的加法
#print(v[v>3])
#输出v矩阵中大于3的数字
矩阵的一些运算
from matplotlib import pyplot as plt
import numpy as np
v=np.array([1,23,4,5,723,12,4])
v1=np.array([[1,2,4,55,1],
[1,1,1,1,1]])
# 生成一个行列相等的数字
# 他们之间的加减法就是对应的行列相加减
#举一个加法为例子
x=np.array([[1,2],[3,4]])
y=np.array([[2,4],[7,9]])
#print(x+y)
#开方
#print(np.sqrt(x))
print(np.dot(x,y)) #点乘
#print(x.dot(y))
#print(np.sum(x))
#print(np.sum(x,axis=1))
#axis =1 的时候就是求列的和
#print(x.T)
#矩阵的转置
y=empty_like(y)
#行列一样生成的随机矩阵
for i in range(2):
z[i,:]=x[i,:]+y
#z矩阵的每一行都加y(进行的是矩阵的加法!!)