京东的面试在大酒店里,三面分了三天,一面过了会通知之后二面,
机器学习算法岗
一面面经
1 数据库查询
给定两个数据库表格,A表中有一个字段是id,值为1 2 3 4 5,B表也有一个字段是id,值为1 2 3 用sql语句求A中的4 5
使用 not in ,容易理解,效率低
select distinct A.ID from A where A.ID not in (select ID from B)
使用 left join…on…
select A.ID from A left join B on A.ID=B.ID where B.ID is null
2 Dataframe
定义
Dataframe是Python中Pandas库中的一种数据结构,它类似excel,是一种二维表,DataFrame的单元格可以存放数值、字符串等,同时DataFrame可以设置列名columns与行名index,可以通过像matlab一样通过位置获取数据也可以通过列名和行名定位
Import pandas as pd
随机创建一个4*4的DataFrame
df1=pd.DataFrame(np.random.randn(4,4),index=list('ABCD'),columns=list('ABCD'))
第一个参数是存放在DataFrame里的数据,第二个参数index就是之前说的行名,第三个参数columns是之前说的列名(后两个参数可以使用list输入,但是注意,这个list的长度要和DataFrame的大小匹配,不然会报错。当然,这两个参数是可选的,你可以选择不设置;这两个list是可以一样的,但是每行每列的名字在index或columns里要是唯一的)
创建字典
字典的每个key的value代表一列,而key是这一列的列名
dic1={'name':['小明','小红','狗蛋','铁柱'],'age':[17,20,5,40],'gender':['男','女','女','男']}
df3=pd.DataFrame(dic1)
查看列的数据类型
df3.dtypes
查看DataFrame的头尾
使用head可以查看前几行的数据,默认的是前5行,不过也可以自己设置。
使用tail可以查看后几行的数据,默认也是5行,参数可以自己设置