Python for Data Analysis》书中Pythonic写法-新乡seo|网站优化,网站建设_微信公众号:zeropython—昊天博客

最近重新阅读了《Python for Data Analysis》一书,发现好多Pythonic的写法。之前也看到过,每次看的时候都会发自内心的感叹一句“写得真好”,但是几天之后就忘了,所以这次再读的时候,打算将他们写下来。

zip

zip的用法就是将几个list,tuple或者其他队列组合成tuple的列表。最基本的用法

结果: [('foo', 'one'), ('bar', 'two'), ('baz', 'three')]

基本的用法了解,我们来一下高级用法

 

这里的 * 我之前也不知道怎么使用。* 可以将元素提取出来,然后用zip,将first_name和second_name分开。

dict

情境一:我们经常会遇到要从dict中取value,但是在取之前,我们并不确定key是否存在呢,所以会先判断key是否存在:

优化代码:dict其实是有get方法

情境二:要将一个文档里的单词,按照首字母归类。最后的储存结果为一个dict,key是首字母,value是单词的list。 result = {"a":[],"b":[],...}

优化代码:dict有setdefault方法

sort 和 lambda

我们需要将一些string

  • 按字符长排序words = ['foo', 'card', 'bar', 'aaaa', 'abab']
    words.sort(key = lambda x : len(x))
  • 按字符不同字母数量排序words = ['foo', 'card', 'bar', 'aaaa', 'abab']
    words.sort(key = lambda x : len(set(x)))

np.where()

需要将大于0的数字变成5,将小于0的数据变成-4.

或者大于0的数字变成5,小于0的数据不变

np.cumsum()

我自己一直有用sum(),mean()但是很少用到累计和。这次看到了所以也记一笔。

np.any() and np.all()

我们需要判断一个数组是否都为正数

巧取四分之一的数据

我觉得这上面的写法可以使我的代码精简很多,pythonic是最终目标。

如果这些中有你不熟悉的用法,那就点个赞,因为你离pythonic又近了一步。

谢谢大家支持呢。要不到200赞就给这本书的链接咯,这样大家也可以一起交流呢。