您现在的位置是:首页 > 文章详情

Python第三方库使用感言

日期:2018-08-28点击:265

Python第三方库使用的感言加使用笔记

  1. 一般来讲第三方库会提供大量的类与对象, 对象方法的返回值和库中函数的返回值一般不会是Python原始自带的对象, 而是由该第三方库提供的对象, 因为Python的开源性, 第三方库的编写风格各异, 不怎么好记忆, 如, 一般常理来说, 函数应该是动词, 而在matplotlib.pyplot中的title(), xlabel(), ylabel()等设置title, label的函数, 你们瞧一瞧, 我真的...:(
  2. 对1的举例, pandas中DataFrame创建出来的对象的head()返回的是DataFrame类型对象, columes返回Index对象, loc[index]返回的是Serial, 在下认为, 一方面第三方这样做主要是因为开发方便, 但是我严重以为他们有一种控制欲(让我着实不爽), 这里再Mark一下, 在Pandas中单独的取出来的一行或者一列使用Serial表示的, 但是标题行为Index对象, 使用head(1)虽然返回的是一行, 但是返回的对象是一个DataFrame队形, 因为考虑到head(10)等情况, 额(⊙o⊙)…, 我是不是写地有一点乱了:), 还有还有-->

     data is an instance of DataFrame data['one'] --> return Serial class data[['one']] --> return Index class 总是在pandas中返回结果不仅仅是单行或者单列, 除了head(1)和columes都是DataFrame
  3. 如果执行了一个函数比如sort返回的是None, 一般是作为参数的对象自身发生了改变, 而如果有了返回值, 一般返回的是一个新的对象, 不会影响源对象, 这比如pandas中的DataFrame的sort_values()
  4. Python的第三方库做的都比较全面, 比如numpy就提供了.T, .min(), mean()等属性和方法, 我的意思是在解决一个问题使, 尤其是使用Python解决时, 最好要想一想有没有现成的, 这要比其他编程语言更为明显
  5. 在计算中, 如果遇到null或者nan, 一般不会报错呦, 而是返回nan或者null
  6. 对有领域性的数据结构的运算符的操作, 比如numpy中矩阵的乘积, 加法等都是对其中的元素操作, 对整体地操作一般都是使用函数或者方法
  7. 一个函数可能传入一个参数的同时也可能支持以列表的方式传入
  8. Python运行[][]时, 是先运算出左, 出来结果之后再运行右, 在多说一句, 在python中[]就是一个函数调用, 里面的参数是*args
  9. 一个关于pypot的知识, plt.show()显示figure, 但是之后就会想回该对象了, 所以第二次plt.show()是什么都没有的, 还有 -->

    我们在使用plt.plot()等函数在没有指明是哪个figure的时候, 我猜测(:-))应该使用的是plt模块对象中维护的一个方便开发者迅速开发的一个figure, 好吧, 说的有一点模糊 我觉得使用 fig = plt.figure()和上面是非常的相似的, figure()函数返回的就是plt中维护的那个figure figure就是整个画布, 只有**一个** plt.hist(yvalues, xvalues, bins=20) -> bins表示总共的间隔数, 如果为1的话就连在一起了 plt.show()显示figure 对于有强迫症的同学: ax.tick_params(bottom=False, top=False, left=False, right=False): 去掉轴上标注着值的地方的"-"
  10. 为了开发方便, 同样也是原则, 一般一个函数的参数, 都是会实现了特定的协议的, 比如一个函数的参数既可以是list又可以是np.ndarray, 因为他们有相应的接口

  11. 关于seaborn

     sns.set() sns.set_style('white') sns.set_style('dark') sns.color_palette('Reds', 8) --> 渐进加深色, 如果是Reds_r颜色翻过来 sns.color_palette(8) --> 展现出8个颜色 .dark_palette .light_palette sns.palplot(sns.color_palette(8)) --> 画到figure(再一次提起, 一个线程一个figure)上 sns.joinplot(x='', y='', data=DataFrameObject) --> 用于观察两个变量之间的管理, 最好就是用散点图 效果跟plt.catter(x, y)差不多, 但是要全一点 sns.regplot(x="x", y="y", data=data, x_jitter=0.05) --> 散列图与回归图 sns.lmplot(x="x", y="y", data=data) sns.pointplot(x="x", y="y", hue="z", data=DataFrameObject); heatmap = sns.heatmap(uniform_data) --> uniform_data是一个矩阵, 通过一个heapmap显示矩阵 ax = sns.heatmap(uniform_data, vmin=0.2, vmax=0.5, center=0, annot=True, linewidth=0.5) --> vmin, vmax指定范围, center指定哪个数为0, annot显示出值, linewidth指定格子的间隔
  12. 某一些库就是先以字符串作为标志, 比如12点中提到的seaborn中Red和Red_r, 一个函数的可以接受特别多的参数, 特定该函数的定义时*args, **kwargs, 这样IDE的提示就不好用了

原文链接:https://yq.aliyun.com/articles/670367
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章