python编程map函数及as_matrix函数简明

如题。

map函数属于python函数式编程,具体的就不说了,可参考官网说明或者是直接看大神说明:https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00141861202544241651579c69d4399a9aa135afef28c44000

在此简要说说如何理解,因为之前我有一点困惑。

已知:

1
2
3
4
5
>>> def f(x):
... return x * x
...
>>> map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
[1, 4, 9, 16, 25, 36, 49, 64, 81]

那么在理解以下代码时:

1
2
3
4
5
6
7
8
9
10
Title_Dict = {}
#进行添加工作,将其中相关的字词以统一字词以替换
Title_Dict.update(dict.fromkeys(['Capt','Col','Major','Dr','Rev'],'Officer'))
Title_Dict.update(dict.fromkeys(['Don','Sir','the Countess','Dona','Lady'],'Royalty'))
Title_Dict.update(dict.fromkeys(['Mme','Ms','Mrs'],'Mrs'))
Title_Dict.update(dict.fromkeys(['Mlle','Miss'],'Miss'))
Title_Dict.update(dict.fromkeys(['Mr'],'Mr'))
Title_Dict.update(dict.fromkeys(['Mme','Ms','Mrs'],'Master'))
all_data['Title'] = all_data['Title'].map(Title_Dict)#(在此中相当于返回了设定的值,与函数式返回类似)新建立一个列表,并且将先前统一好的代入进行整体分类
sns.barplot(x='Title',y='Survived',data=all_data,palette='Set2')

可以简单的理解为一个函数:

1
2
if ['Capt','Col','Major','Dr','Rev']:
return 'Officer'

这样在结合变量使用时就容易理解的多了~

在说说as_matrix函数

如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
df = pd.DataFrame(np.random.randn(3,4) ,columns=list('abcd'))
print (df)
输出:
a b c d
0 0.702272 0.199382 0.590453 -0.177694
1 0.692848 -1.113005 -0.373606 -0.249216
2 -0.928320 -0.920277 0.804570 -0.383224
print (df.values)
输出:
[[ 0.70227209 0.19938178 0.59045266 -0.17769368]
[ 0.69284849 -1.11300544 -0.37360597 -0.24921559]
[-0.92831955 -0.92027708 0.80457031 -0.38322414]]
print (df.as_matrix(columns=None))
输出:
[[ 0.70227209 0.19938178 0.59045266 -0.17769368]
[ 0.69284849 -1.11300544 -0.37360597 -0.24921559]
[-0.92831955 -0.92027708 0.80457031 -0.38322414]]

实际上两者的转换就如同有无特征名称之间的来来往往…

之前有些困惑,现在简单理解了一点。

---------------本文终---------------

文章作者:刘俊

最后更新:2019年01月02日 - 14:01

许可协议: 转载请保留原文链接及作者。