(1)用type()可以查看任意数据类型。
如果是单个数值,则显示具体数值类型;如果是存储容器,则显示对应的存储类型。
示例:
输出结果:
注:
<1>若果不用np.mat([])定义矩阵或数组,用[ ]定义的存储类型都是List,无论是[]还是[[ ]]。
<2>数据框对应pandas包,df =pd.DataFrame()由于有多个列,查看各列对应数据类型时,用df.dtypes,一定要是复数形式,如果是定义的是序列,s = pd.Series(),则可以用单数形式s.dtype,s.dtypes也不错。
<3>df.__class__和type(df)的效果是一样的,其他数据类型都可以用,比如x.__class__和type(x),x可以是任意的数据对象。
<4>使用df.dtypes可以返回对应的数据类型,int,float,如果是非数值型,比如字符型,混合型,则会返回object,便于数据处理数值型和非数值型的分开,但是type()做不到。
(2)数据框查看数据df
l 查看前面和末尾几行,df.head(n),df.tail(n),n可要可不要。
l 查看列名df.colmns,查看行标df.index,查看值df.values,查看概述df.describe。
l 选取指定的行df[0:5],1-4行,选取列df[‘列名’]。
l 用对应标签(index,colmns)选取,df.loc[[index1,index2], [‘列名1’,’列名2’]]。
l 用整数下标选择,df.iloc[3:5,0:2],取3、4行,0、1列,从0开始计数。
l 取数据框的值是df.values,返回的是多维数组。
(3)lambda匿名函数
输出结果:
输入的参数x,后面是函数规则,与一般函数的定义效果一样,但根据简单灵活。
(4)数据框中函数
取出数据框df的var对应列并转换为float型,只要唯一数值的,并排序得到多维数组。
注:在终端中试验简单的函数,比在pycharm和notebook中方便
(5)np.diff(x,n,axis)
n代表差分次数,axis=-1是默认,代表一个维度中的相邻数差分,axis=0代表两个维度对应差分。
>>>x=np.array([1,2,3,6,7,9,0])
>>> np.diff(x,n=1,axis=-1)
array([ 1, 1, 3, 1, 2, -9])
>>>x=np.array([[1,2,3,6,7,9,0],[4,5,9,8,3,6,8]])
>>>x.diff(x,axis=0)
array([[ 3, 3, 6, 2, -4, -3, 8]])
>>>np.diff(x,axis=-1)
array([[ 1, 1, 3, 1, 2, -9],
[ 1, 4, -1, -5, 3, 2]])
(6)np.empty([],dtype=int,order=C),依据给定的形状和数据类型返回一个空的数组,值是随机给的。
>>>np.empty([2,2])
array([[ 0.00000000e+000, 1.23496922e-263],
[ 1.23465979e-263, 1.51677620e-314]])
>>>np.empty([2,2],dtype=int)
array([[ 0, 24],
[ 25, 158116472]])
(7)np.arange(start,stop,step)返回一个数组,从start到stop,左闭右开[a,b),间隔为step,默认的间隔为1。和range()用法基本一样,但是range(n)中参数一定要是整数,但是np.arange()可以是小数。
>>>np.arange(3)
array([0, 1, 2])
>>>np.arange(3.0)
array([ 0., 1., 2.])
>>>np.arange(1,9,4)
array([1, 5])
>>>np.arange(1,9,4.0)
array([ 1., 5.])
>>>np.arange(3.2)
array([ 0., 1., 2., 3.])
>>>range(3.2)
Traceback (mostrecent call last):
File "<stdin>", line 1, in<module>
TypeError: range()integer end argument expected, got float.
(8)df[var].quantile(threshold),var列在阈值threshold对应的分位数,是一种频率分布统计,是一个分位数值,可以比较大小看数值是否落在规定的区间内。
(9)s.strip(rm) :删除s字符串中开头、结尾处,位于 rm删除序列的字符。
(10)pd.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False)
将数组分组
参数含义:
Retbins:是否返回bin
include_lowest:一个区间是否左闭,是否包含最小的那个
>>> x =np.array([0.2,1.4,2.5,3.6,2.9,5,8,7,9.6])
>>>pd.cut(x,3)
[(0.191, 3.333],(0.191, 3.333], (0.191, 3.333], (3.333, 6.467], (0.191, 3.333], (3.333, 6.467],(6.467, 9.6], (6.467, 9.6], (6.467, 9.6]]
Categories (3,object): [(0.191, 3.333] < (3.333, 6.467] < (6.467, 9.6]]
>>>pd.cut(x,3,labels=['one','two','three'])
[one, one, one,two, one, two, three, three, three]
Categories (3,object): [one < two < three]