【part2】函数方法汇总|个人学习向笔记|随学习进度更新
1.函数及方法
1.1Pandas
1.1.1 Series类型数据定义与创建
Series具有index和value两个属性,可以看做定长有序字典类型,一维数据可以用来创建Series对象。
pandas.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)
官方文件: https://pandas.pydata.org/docs/reference/api/pandas.Series.html?highlight=series#pandas.Series.
创建Series类型:
1)直接生成,index
默认为整数序列:
In [42]: series = pd.Series([1,2,3])
In [43]: series
Out[43]:
0 1
1 2
2 3
2)直接生成,自定义index
内容(显示指定索引):
In [44]: series_1 = pd.Series([1,2,3],['a','b','c'])
In [45]: series_2
Out[45]:
a 1
b 2
c 3
3)用字典类型生成,字典键值对与Series
类型的index-value
属性对应:
In [46]: series_2 = pd.Series({'a':4, 'b':5, 'c':6})
In [47]: series_2
Out[47]:
a 4
b 5
c 6
dtype: int64
4)筛选字典类型中的指定索引内容生成新的Series
类型:
In [53]: series_3 = pd.Series({'a':4, 'b':5, 'c':6}, index=['b','a'])
In [54]: series_3
Out[54]:
b 5
a 4
dtype: int64
1.1.2 pandas DataFrame类型与numpy array类型转换
1)pandas DataFrame 类型转 numpy array 类型
方法1:使用DataFrame中的values方法:df.values
方法2:使用Numpy中的array方法:np.array(df)
import pandas as pd
import numpy as np
data = pd.DataFrame(np.arange(9).reshape(3,3),columns=list('ABC'))#创建DataFrame类型data
In [7]: data
Out[7]:
A B C
0 0 1 2
1 3 4 5
2 6 7 8
In [8]: data_1=data.values #方法1 p.s.原有方法df.as_matrix()在新版本中将被df.values取代
In [9]: data_1
Out[9]:
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
In [11]: data_3 = np.array(data) #方法2
In [12]: data_3
Out[12]:
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
2)numpy array 类型转 pandas DataFrame 类型:df = pd.DataFrame(arr)
import pandas as pd
import numpy as np
In [13]: arr=(np.arange(9).reshape(3,3)) #创建array类型arr
In [14]: arr
Out[14]:
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
In [15]: df = pd.DataFrame(arr)
In [16]: df
Out[16]:
0 1 2
0 0 1 2
1 3 4 5
2 6 7 8
在实践中可以根据需要为转化出的DataFrame类型添加columns的名称:columns=···
housing_tr = pd.DataFrame(X, columns=housing_num.columns)
1.1.3 统计计算相关method
pandas提供了许多可以用于统计学计算的方法(已经用到过median、corr):
1.1.4 pandas.DataFrame.dropna
用来清除缺失数据:Remove missing values.
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html#pandas.DataFrame.dropna.
实例所涉及参数:subset
其用途为:Define in which columns to look for missing values.
import pandas as pd
import numpy as np
df = pd.DataFrame({"name": ['Alfred', 'Batman', 'Catwoman'],
"toy": [np.nan, 'Batmobile', 'Bullwhip'],
"born": [pd.NaT, pd.Timestamp("1940-04-25"),
pd.NaT]})
df
Out[6]:
name toy born
0 Alfred NaN NaT
1 Batman Batmobile 1940-04-25
2 Catwoman Bullwhip NaT
df.dropna(subset=['name','born'])
Out[7]:
name toy born
1 Batman Batmobile 1940-04-25
1.2 scikit-learn(sklearn)
scikit-learn官方网址: https://scikit-learn.org/stable/modules/classes.html.
1.2.1 sklearn.impute.SimpleImputer
用于处理数据中的丢失数据:
sklearn.impute
: Transformers for missing value imputation.
1)定义与创建
sklearn.impute.SimpleImputer: Imputation transformer for completing missing values.
下述参数中,较常使用的为missing_values 和 strategy,后者用于确定填补缺失数据的方式:
class >>
sklearn.impute.SimpleImputer(*, missing_values=nan, strategy='mean', fill_value=None, verbose=0, copy=True, add_indicator=False)
2)使用(相关方法)
method>>
上述方法中,主要应用的为fit()
、fit_transform()
及transform()
,所涉及的X
为稀疏矩阵(相关定义见本文内容2.1),chapter2实战项目中所涉及的为fit()
和transform()
两个方法。推荐使用fit_transform()
,因为运行速度可以更快一些。
1.2.2 sklearn.preprocessing.OrdinalEncoder
用于text类型数据与number类型数据进行转换,以便后期的处理与计算:
sklearn.preprocessing
: The sklearn.preprocessing module includes scaling, centering, normalization, binarization methods.
1)定义与创建
sklearn.preprocessing.OrdinalEncoder: Encode categorical features as an integer array.
class >>
sklearn.preprocessing.OrdinalEncoder(*, categories='auto', dtype=<class 'numpy.float64'>)
2)使用(相关方法)
method>>
2.其他相关知识及操作
2.1稀疏矩阵(sparse matrix)
定义: 当矩阵中数值为0的元素数目远多于非零元素的数目,且非零元素分布并无规律时,该矩阵称为稀疏矩阵。相应的,当非零元素占多数时,矩阵称为稠密矩阵。
稠
密
度
=
非
零
元
素
总
数
/
矩
阵
元
素
总
数
稠密度=非零元素总数/矩阵元素总数
稠密度=非零元素总数/矩阵元素总数
2.2 IPython console
2.2.1 IPython内容清除
1)清除当前console内全部内容:clear
2)清除所有变量和console内全部内容:reset->y
2.2.2 Ipython字体大小调整
调小:ctrl + -
调大:ctrl + shift + +
2.3 Python中的类
2.3.1 定义类
类是拥有相同属性和方法的对象的集合。其中,对象是类的实例化,方法是类中定义的函数。
2.3.2 类的组成
1)名称:类名
2)属性:对象的特征
3)方法:对象可以进行操作的方法
2.3.3 类的操作
1)属性引用:object.属性
2)实例化:object = classname()
3)方法调用:object.methodname()