Python 太难找工作了

2019 年 11 月 27 日
 renantianxia8
pythonweb 方向工作机会极少,在职投了 4 个月简历,就三次面试机会
13742 次点击
所在节点    Python
70 条回复
hijoker
2019 年 11 月 29 日
Golang 才是难找,盆友
renantianxia8
2019 年 11 月 29 日
@hijoker 还想学学 go,听你这我又想放弃了,java 又不想学😁
EurekaSeven
2019 年 11 月 29 日
@encro Python 的 IDE,就我而言只有 PyCharm 才能好好当成提高效率的工具。
至于高质量的库还是有很多,这些知名库都是好团队组织在维护,Django,Numpy,Pandas 之类。
但是 Python 想精通想用的好确实难,曲线一下子就上去了,七八十度的陡坡。
Python 多数都是外包才招人,招到的多数都是新手,新手写的东西,效率堪忧。
之前也是有人找我教他 Python,想自己写点东西,后来发现学不会,他的工具就都让我做了开发了,因为不是给他教学了,所以给的钱完全支撑不起给他做项目,写的就很随便,没去优化任何东西,能用就行。结果数据处理一趟下来要花近 2 分钟,后来是我自己看不下去,花了一天做了优化,时间缩减到 8 秒,然后找他要了点钱...这波操作反正有点迷。
sylvos
2019 年 11 月 30 日
@EurekaSeven 可以分享一下优化思路吗
sylvos
2019 年 11 月 30 日
@EurekaSeven 我有一个比较大的 dataframe 80 万行,100 列的样子,要遍历的条件也蛮多的,np.where 要写 100 多条,而且条件至上而下是依赖的,怎样提升效率呢
EurekaSeven
2019 年 11 月 30 日
@sylvos 我只能说说我那个程序的思路哈,毕竟不知道你的实际情况。
1.最开始我是硬循环嵌套强行做 if 匹配,后来优化当然第一件事就是干掉它,尽量在提取数据之初限定条件,这个条件一般是就是 where 条件,能极大减少循环次数。
2.如果有数据需要从别的地方拿,尽量先提取一次做成字典,把 if 条件之类的通过键的形式直接取值,这样做可以把 where 的匹配时间降到最低,还能去掉循环嵌套。
3.我当时数据是丢数据库的,设计库的时候字段也最好定好,可以以空间换时间,还得把 where 条件做索引,如果涉及到入库,最好先把要存的每条数据做成元组存进列表,通过数据库包的 executemany 方法来提交到数据库,能节省相当多的时间,数据库连接对象也要避免多次创建。
4.numpy 最好用 anaconda 来做,它会包含很多算法库,能极大提升性能,
当时我的数据并没有那么多,整合清洗完成大概 14000 条,但是需要的数据分离在不同的地方,相当于说需要用 where 条件来匹配数据,循环嵌套硬匹配,那循环次数好几亿就太多了,O(n^2)了。做成字典去对应数据,通过键直接去拿我要的,时间上只花了构造字典的循环以及拿数据匹配的循环。
alw1329
2019 年 12 月 2 日
@EurekaSeven 有简例看一看吗?感觉很不错呀
EurekaSeven
2019 年 12 月 2 日
@alw1329 ```python
# 一个例子,实际数据比较长

# 比如这是我一个很长的需要的数据列表
# 里面缺失了一个 matchId
event_data_list = [{
"id": "周二 001",
"matchTime": "2019/10/23 0:15:00",
"league": "亚冠杯",
"home": "希拉尔",
"away": "萨德",
}]
# 这里面有需要的 matchId,有一个相同的 id 来关联它们
event_name_from_dict = [{
"id": "周二 001",
"matchId": 1798094,
}]

# 从数据库提取的部分就不说了
# 首先会从 matchId 的列表中进行提取并处理
# 提取后的数据以 where 条件做键,对应值
event_id_and_match = dict()
for event_id in event_name_from_dict:
event_id_and_match[event_id["id"]] = event_id["matchId"]
print(event_id_and_match) # {'周二 001': 1798094}

# 然后是进行整合匹配
for event in event_data_list:
# 根据 id 这个键去提取需要的值,字典取值效率是非常高的
# 可以避免用循环嵌套的方式来比对
event['matchId'] = event_id_and_match[event['id']]
# 3.6 以后字典是有序的,如果你要提交数据库可以直接转 tuple(当然不能过度依赖字典的有序)
print(event) # {'id': '周二 001', 'matchTime': '2019/10/23 0:15:00', 'league': '亚冠杯', 'home': '希拉尔', 'away': '萨德', 'matchId': 1798094}
print(tuple(event.values())) # ('周二 001', '2019/10/23 0:15:00', '亚冠杯', '希拉尔', '萨德', 1798094)
```
程序的一部分内容就是这样了,因为有点擦边球的东西,所以我删掉了数据的大部分内容.
本人水平比较低,只能写这样,大佬就不要口吐莲花了。
DIDIFlora
2019 年 12 月 3 日
能力较强的话可以来试一下无人车团队:)
Jerry1112
2019 年 12 月 5 日
19 应届生,学的 Python,找的爬虫工作, 就是工资很低很低。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/623448

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX