一般来讲第三方库会提供大量的类与对象, 对象方法的返回值和库中函数的返回值一般不会是Python原始自带的对象, 而是由该第三方库提供的对象, 因为Python的开源性, 第三方库的编写风格各异, 不怎么好记忆, 如, 一般常理来说, 函数应该是动词, 而在matplotlib.pyplot中的title(), xlabel(), ylabel()等设置title, label的函数, 你们瞧一瞧, 我真的...😦

对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

如果执行了一个函数比如sort返回的是None, 一般是作为参数的对象自身发生了改变, 而如果有了返回值, 一般返回的是一个新的对象, 不会影响源对象, 这比如pandas中的DataFrame的sort_values()

Python的第三方库做的都比较全面, 比如numpy就提供了.T, .min(), mean()等属性和方法, 我的意思是在解决一个问题使, 尤其是使用Python解决时, 最好要想一想有没有现成的, 这要比其他编程语言更为明显

在计算中, 如果遇到null或者nan, 一般不会报错呦, 而是返回nan或者null

对有领域性的数据结构的运算符的操作, 比如numpy中矩阵的乘积, 加法等都是对其中的元素操作, 对整体地操作一般都是使用函数或者方法

一个函数可能传入一个参数的同时也可能支持以列表的方式传入

Python运行[][]时, 是先运算出左, 出来结果之后再运行右, 在多说一句, 在python中[]就是一个函数调用, 里面的参数是*args

一个关于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): 去掉轴上标注着值的地方的"-"

为了开发方便, 同样也是原则, 一般一个函数的参数, 都是会实现了特定的协议的, 比如一个函数的参数既可以是list又可以是np.ndarray, 因为他们有相应的接口

关于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点中提到的seaborn中Red和Red_r, 一个函数的可以接受特别多的参数, 特定该函数的定义时*args, **kwargs, 这样IDE的提示就不好用了