呆鸟云:“觉得有用,就请点个在看,哈哈”

函数应用

不管是为 pandas 对象应用自定义函数,还是应用其它第三方函数,都离不开以下三种方法。用哪种方法取决于操作的对象是 DataFrameSeries ,是行或列,还是元素。

  1. 表级函数应用:`pipe()`
  2. 行列级函数应用:apply()
  3. 聚合 API:`agg()` 与 `transform()`
  4. 元素级函数应用:`applymap()`

表级函数应用

虽然可以把  DataFrameSeries  传递给函数。不过,通过链式调用函数时,最好使用 pipe() 方法。对比以下两种方式:

# f, g, and h are functions taking and returning ``DataFrames``>>> f(g(h(df), arg1=1), arg2=2, arg3=3)

下列代码与上述代码等效

>>> (df.pipe(h)...    .pipe(g, arg1=1)...    .pipe(f, arg2=2, arg3=3))

pandas 鼓励使用第二种方式,即链式方法。在链式方法中调用自定义函数或第三方支持库函数时,用 pipe 更容易,与用 pandas 自身方法一样。上例中,fg  与 h 这几个函数都把 DataFrame 当作首位参数。要是想把数据作为第二个参数,该怎么办?本例中,pipe 为元组 (callable,data_keyword)形式。.pipe 把  DataFrame  作为元组里指定的参数。下例用 statsmodels 拟合回归。该 API 先接收一个公式,DataFrame 是第二个参数,data。要传递函数,则要用pipe 接收关键词对 (sm.ols,'data')。

In [138]: import statsmodels.formula.api as smIn [139]: bb = pd.read_csv('data/baseball.csv', index_col='id')In [140]: (bb.query('h > 0')   .....:    .assign(ln_h=lambda df: np.log(df.h))   .....:    .pipe((sm.ols, 'data'), 'hr ~ ln_h + year + g + C(lg)')   .....:    .fit()   .....:    .summary()   .....:  )   .....: Out[140]: <class 'statsmodels.iolib.summary.Summary'>"""OLS Regression Results                            ==============================================================================Dep. Variable:                     hr   R-squared:                       0.685Model:                            OLS   Adj. R-squared:                  0.665Method:                 Least Squares   F-statistic:                     34.28Date:                Thu, 22 Aug 2019   Prob (F-statistic):           3.48e-15Time:                        15:48:59   Log-Likelihood:                -205.92No. Observations:                  68   AIC:                             421.8Df Residuals:                      63   BIC:                             432.9Df Model:                           4                                         Covariance Type:            nonrobust                                         ===============================================================================                  coef    std err          t      P>|t|      [0.025      0.975]-------------------------------------------------------------------------------Intercept   -8484.7720   4664.146     -1.819      0.074   -1.78e+04     835.780C(lg)[T.NL]    -2.2736      1.325     -1.716      0.091      -4.922       0.375ln_h           -1.3542      0.875     -1.547      0.127      -3.103       0.395year            4.2277      2.324      1.819      0.074      -0.417       8.872g               0.1841      0.029      6.258      0.000       0.125       0.243==============================================================================Omnibus:                       10.875   Durbin-Watson:                   1.999Prob(Omnibus):                  0.004   Jarque-Bera (JB):               17.298Skew:                           0.537   Prob(JB):                     0.000175Kurtosis:                       5.225   Cond. No.                     1.49e+07==============================================================================Warnings:[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.[2] The condition number is large, 1.49e+07. This might indicate that there arestrong multicollinearity or other numerical problems.

unix 的 pipe  与后来出现的 dplyr 及 magrittr 启发了pipe 方法,在此,引入了 R 语言里用于读取 pipe 的操作符 (%>%)。pipe 的实现思路非常清晰,仿佛 Python 源生的一样。强烈建议大家阅读  pipe()  的源代码。

行列级函数应用

apply() 方法可以沿着 DataFrame 的轴应用任何函数,比如,描述性统计方法,该方法支持  axis 参数。

In [141]: df.apply(np.mean)Out[141]: one      0.811094two      1.360588three    0.187958dtype: float64In [142]: df.apply(np.mean, axis=1)Out[142]: a    1.583749b    0.734929c    1.133683d   -0.166914dtype: float64In [143]: df.apply(lambda x: x.max() - x.min())Out[143]: one      1.051928two      1.632779three    1.840607dtype: float64In [144]: df.apply(np.cumsum)Out[144]:         one       two     threea  1.394981  1.772517       NaNb  1.738035  3.684640 -0.050390c  2.433281  5.163008  1.177045d       NaN  5.442353  0.563873In [145]: df.apply(np.exp)Out[145]:         one       two     threea  4.034899  5.885648       NaNb  1.409244  6.767440  0.950858c  2.004201  4.385785  3.412466d       NaN  1.322262  0.541630

apply() 方法还支持通过函数名字符串调用函数。

In [146]: df.apply('mean')Out[146]: one      0.811094two      1.360588three    0.187958dtype: float64In [147]: df.apply('mean', axis=1)Out[147]: a    1.583749b    0.734929c    1.133683d   -0.166914dtype: float64

默认情况下,apply() 调用的函数返回的类型会影响 DataFrame.apply 输出结果的类型。

  • 函数返回的是 Series 时,最终输出的结果是 DataFrame。输出的列与函数返回的 Series 索引相匹配。
  • 函数返回其它任意类型时,输出结果是 Series

result_type  会覆盖默认行为,该参数有三个选项:reducebroadcastexpand。这些选项决定了列表型返回值是否扩展为 DataFrame。用好 apply() 可以了解数据集的很多信息。比如可以提取每列的最大值对应的日期:

In [148]: tsdf = pd.DataFrame(np.random.randn(1000, 3), columns=['A', 'B', 'C'],   .....:                     index=pd.date_range('1/1/2000', periods=1000))   .....: In [149]: tsdf.apply(lambda x: x.idxmax())Out[149]: A   2000-08-06B   2001-01-18C   2001-07-18dtype: datetime64[ns]

还可以向 apply() 方法传递额外的参数与关键字参数。比如下例中要应用的这个函数:

def subtract_and_divide(x, sub, divide=1):return (x - sub) / divide

可以用下列方式应用该函数:

df.apply(subtract_and_divide, args=(5,), divide=3)

为每行或每列执行 Series 方法的功能也很实用:

In [150]: tsdfOut[150]:                    A         B         C2000-01-01 -0.158131 -0.232466  0.3216042000-01-02 -1.810340 -3.105758  0.4338342000-01-03 -1.209847 -1.156793 -0.1367942000-01-04       NaN       NaN       NaN2000-01-05       NaN       NaN       NaN2000-01-06       NaN       NaN       NaN2000-01-07       NaN       NaN       NaN2000-01-08 -0.653602  0.178875  1.0082982000-01-09  1.007996  0.462824  0.2544722000-01-10  0.307473  0.600337  1.643950In [151]: tsdf.apply(pd.Series.interpolate)Out[151]:                    A         B         C2000-01-01 -0.158131 -0.232466  0.3216042000-01-02 -1.810340 -3.105758  0.4338342000-01-03 -1.209847 -1.156793 -0.1367942000-01-04 -1.098598 -0.889659  0.0922252000-01-05 -0.987349 -0.622526  0.3212432000-01-06 -0.876100 -0.355392  0.5502622000-01-07 -0.764851 -0.088259  0.7792802000-01-08 -0.653602  0.178875  1.0082982000-01-09  1.007996  0.462824  0.2544722000-01-10  0.307473  0.600337  1.643950

apply() 有一个参数 raw,默认值为 False,在应用函数前,使用该参数可以将每行或列转换为 Series。该参数为 True 时,传递的函数接收 ndarray 对象,若不需要索引功能,这种操作能显著提高性能。

聚合 API

0.20.0 版新增。聚合 API 可以快速、简洁地执行多个聚合操作。Pandas 对象支持多个类似的 API,如 groupby API、window functions API、resample API。聚合函数为DataFrame.aggregate(),它的别名是 DataFrame.agg()。这里使用与前例类似的 DataFrame

In [152]: tsdf = pd.DataFrame(np.random.randn(10, 3), columns=['A', 'B', 'C'],   .....:                     index=pd.date_range('1/1/2000', periods=10))   .....: In [153]: tsdf.iloc[3:7] = np.nanIn [154]: tsdfOut[154]:                    A         B         C2000-01-01  1.257606  1.004194  0.1675742000-01-02 -0.749892  0.288112 -0.7573042000-01-03 -0.207550 -0.298599  0.1160182000-01-04       NaN       NaN       NaN2000-01-05       NaN       NaN       NaN2000-01-06       NaN       NaN       NaN2000-01-07       NaN       NaN       NaN2000-01-08  0.814347 -0.257623  0.8692262000-01-09 -0.250663 -1.206601  0.8968392000-01-10  2.169758 -1.333363  0.283157

应用单个函数时,该操作与 apply() 等效,这里也可以用字符串表示聚合函数名。下面的聚合函数输出的结果为 Series

In [155]: tsdf.agg(np.sum)Out[155]: A    3.033606B   -1.803879C    1.575510dtype: float64In [156]: tsdf.agg('sum')Out[156]: A    3.033606B   -1.803879C    1.575510dtype: float64# 因为应用的是单个函数,该操作与`.sum()` 是等效的In [157]: tsdf.sum()Out[157]: A    3.033606B   -1.803879C    1.575510dtype: float64

Series 进行单个聚合操作,返回的是标量值:

In [158]: tsdf.A.agg('sum')Out[158]: 3.033606102414146

多函数聚合

还可以用列表形式传递多个聚合函数。每个函数在输出结果 DataFrame 里以行的形式显示,行名是每个聚合函数的函数名。

In [159]: tsdf.agg(['sum'])Out[159]:             A         B        Csum  3.033606 -1.803879  1.57551

多个函数输出多行:

In [160]: tsdf.agg(['sum', 'mean'])Out[160]:              A         B         Csum   3.033606 -1.803879  1.575510mean  0.505601 -0.300647  0.262585

对于 Series,多个函数返回的结果也是 Series,其索引为函数名:

In [161]: tsdf.A.agg(['sum', 'mean'])Out[161]: sum     3.033606mean    0.505601Name: A, dtype: float64

传递 lambda 函数时,输出名为 的行:

In [162]: tsdf.A.agg(['sum', lambda x: x.mean()])Out[162]: sum         3.033606<lambda>    0.505601Name: A, dtype: float64

应用自定义函数时,则该函数名为输出结果的行名:

In [163]: def mymean(x):   .....:     return x.mean()   .....: In [164]: tsdf.A.agg(['sum', mymean])Out[164]: sum       3.033606mymean    0.505601Name: A, dtype: float64

用字典实现聚合

指定为哪些列应用哪些聚合函数时,需要把包含列名与标量(或标量列表)的字典传递给 DataFrame.agg。注意:这里输出结果的顺序不是固定的,要想让输出顺序与输入顺序一致,请使用 OrderedDict

In [165]: tsdf.agg({'A': 'mean', 'B': 'sum'})Out[165]: A    0.505601B   -1.803879dtype: float64

输入的参数是列表时,输出结果为  DataFrame,并以矩阵形式显示所有聚合函数的计算结果,且输出结果由所有唯一函数组成。未执行聚合操作的列输出结果为 NaN 值:

In [166]: tsdf.agg({'A': ['mean', 'min'], 'B': 'sum'})Out[166]:              A         Bmean  0.505601       NaNmin  -0.749892       NaNsum        NaN -1.803879

多种 Dtype

DataFrame 里包含不能执行聚合操作的多种 Dtype 时,.agg 只计算可以执行聚合的列。这与 groupby.agg 操作类似:

In [167]: mdf = pd.DataFrame({'A': [1, 2, 3],   .....:                     'B': [1., 2., 3.],   .....:                     'C': ['foo', 'bar', 'baz'],   .....:                     'D': pd.date_range('20130101', periods=3)})   .....: In [168]: mdf.dtypesOut[168]: A             int64B           float64C            objectD    datetime64[ns]dtype: object
In [169]: mdf.agg(['min', 'sum'])Out[169]:      A    B          C          Dmin  1  1.0        bar 2013-01-01sum  6  6.0  foobarbaz        NaT

自定义 Describe

.agg() 可以轻松地创建与内置 describe 函数类似的自定义 describe 函数。

In [170]: from functools import partialIn [171]: q_25 = partial(pd.Series.quantile, q=0.25)In [172]: q_25.__name__ = '25%'In [173]: q_75 = partial(pd.Series.quantile, q=0.75)In [174]: q_75.__name__ = '75%'In [175]: tsdf.agg(['count', 'mean', 'std', 'min', q_25, 'median', q_75, 'max'])Out[175]:                A         B         Ccount   6.000000  6.000000  6.000000mean    0.505601 -0.300647  0.262585std     1.103362  0.887508  0.606860min    -0.749892 -1.333363 -0.75730425%    -0.239885 -0.979600  0.128907median  0.303398 -0.278111  0.22536575%     1.146791  0.151678  0.722709max     2.169758  1.004194  0.896839

Transform API

0.20.0 版新增transform() 方法返回的结果与原始数据具有同样索引,且大小相同。这个 API 支持同时处理多种操作,不用一个一个操作,且该 API 与 .agg API 类似。下面先创建一个 DataFrame:

In [176]: tsdf = pd.DataFrame(np.random.randn(10, 3), columns=['A', 'B', 'C'],   .....:                     index=pd.date_range('1/1/2000', periods=10))   .....: In [177]: tsdf.iloc[3:7] = np.nanIn [178]: tsdfOut[178]:                    A         B         C2000-01-01 -0.428759 -0.864890 -0.6753412000-01-02 -0.168731  1.338144 -1.2793212000-01-03 -1.621034  0.438107  0.9037942000-01-04       NaN       NaN       NaN2000-01-05       NaN       NaN       NaN2000-01-06       NaN       NaN       NaN2000-01-07       NaN       NaN       NaN2000-01-08  0.254374 -1.240447 -0.2010522000-01-09 -0.157795  0.791197 -1.1442092000-01-10 -0.030876  0.371900  0.061932

这里转换的是整个 DataFrame。.transform() 支持 Numpy 函数、字符串函数及自定义函数。

In [179]: tsdf.transform(np.abs)Out[179]:                    A         B         C2000-01-01  0.428759  0.864890  0.6753412000-01-02  0.168731  1.338144  1.2793212000-01-03  1.621034  0.438107  0.9037942000-01-04       NaN       NaN       NaN2000-01-05       NaN       NaN       NaN2000-01-06       NaN       NaN       NaN2000-01-07       NaN       NaN       NaN2000-01-08  0.254374  1.240447  0.2010522000-01-09  0.157795  0.791197  1.1442092000-01-10  0.030876  0.371900  0.061932In [180]: tsdf.transform('abs')Out[180]:                    A         B         C2000-01-01  0.428759  0.864890  0.6753412000-01-02  0.168731  1.338144  1.2793212000-01-03  1.621034  0.438107  0.9037942000-01-04       NaN       NaN       NaN2000-01-05       NaN       NaN       NaN2000-01-06       NaN       NaN       NaN2000-01-07       NaN       NaN       NaN2000-01-08  0.254374  1.240447  0.2010522000-01-09  0.157795  0.791197  1.1442092000-01-10  0.030876  0.371900  0.061932In [181]: tsdf.transform(lambda x: x.abs())Out[181]:                    A         B         C2000-01-01  0.428759  0.864890  0.6753412000-01-02  0.168731  1.338144  1.2793212000-01-03  1.621034  0.438107  0.9037942000-01-04       NaN       NaN       NaN2000-01-05       NaN       NaN       NaN2000-01-06       NaN       NaN       NaN2000-01-07       NaN       NaN       NaN2000-01-08  0.254374  1.240447  0.2010522000-01-09  0.157795  0.791197  1.1442092000-01-10  0.030876  0.371900  0.061932

这里的 transform() 接受单个函数;与 ufunc 等效。

In [182]: np.abs(tsdf)Out[182]:                    A         B         C2000-01-01  0.428759  0.864890  0.6753412000-01-02  0.168731  1.338144  1.2793212000-01-03  1.621034  0.438107  0.9037942000-01-04       NaN       NaN       NaN2000-01-05       NaN       NaN       NaN2000-01-06       NaN       NaN       NaN2000-01-07       NaN       NaN       NaN2000-01-08  0.254374  1.240447  0.2010522000-01-09  0.157795  0.791197  1.1442092000-01-10  0.030876  0.371900  0.061932

.transform()Series 传递单个函数时,返回的结果也是单个 Series

In [183]: tsdf.A.transform(np.abs)Out[183]: 2000-01-01    0.4287592000-01-02    0.1687312000-01-03    1.6210342000-01-04         NaN2000-01-05         NaN2000-01-06         NaN2000-01-07         NaN2000-01-08    0.2543742000-01-09    0.1577952000-01-10    0.030876Freq: D, Name: A, dtype: float64

多函数 Transform

transform() 调用多个函数时,将生成多重索引 DataFrame。第一层是原始数据集的列名;第二层是 transform() 调用的函数名。

In [184]: tsdf.transform([np.abs, lambda x: x + 1])Out[184]:                    A                   B                   C                      absolute  <lambda>  absolute  <lambda>  absolute  <lambda>2000-01-01  0.428759  0.571241  0.864890  0.135110  0.675341  0.3246592000-01-02  0.168731  0.831269  1.338144  2.338144  1.279321 -0.2793212000-01-03  1.621034 -0.621034  0.438107  1.438107  0.903794  1.9037942000-01-04       NaN       NaN       NaN       NaN       NaN       NaN2000-01-05       NaN       NaN       NaN       NaN       NaN       NaN2000-01-06       NaN       NaN       NaN       NaN       NaN       NaN2000-01-07       NaN       NaN       NaN       NaN       NaN       NaN2000-01-08  0.254374  1.254374  1.240447 -0.240447  0.201052  0.7989482000-01-09  0.157795  0.842205  0.791197  1.791197  1.144209 -0.1442092000-01-10  0.030876  0.969124  0.371900  1.371900  0.061932  1.061932

为 Series 应用多个函数时,输出结果是 DataFrame,列名是 transform() 调用的函数名。

In [185]: tsdf.A.transform([np.abs, lambda x: x + 1])Out[185]:             absolute  <lambda>2000-01-01  0.428759  0.5712412000-01-02  0.168731  0.8312692000-01-03  1.621034 -0.6210342000-01-04       NaN       NaN2000-01-05       NaN       NaN2000-01-06       NaN       NaN2000-01-07       NaN       NaN2000-01-08  0.254374  1.2543742000-01-09  0.157795  0.8422052000-01-10  0.030876  0.969124

用字典执行 `transform` 操作

函数字典可以为每列执行指定 transform() 操作。

In [186]: tsdf.transform({'A': np.abs, 'B': lambda x: x + 1})Out[186]:                    A         B2000-01-01  0.428759  0.1351102000-01-02  0.168731  2.3381442000-01-03  1.621034  1.4381072000-01-04       NaN       NaN2000-01-05       NaN       NaN2000-01-06       NaN       NaN2000-01-07       NaN       NaN2000-01-08  0.254374 -0.2404472000-01-09  0.157795  1.7911972000-01-10  0.030876  1.371900

transform() 的参数是列表字典时,生成的是以 transform() 调用的函数为名的多重索引 DataFrame。

In [187]: tsdf.transform({'A': np.abs, 'B': [lambda x: x + 1, 'sqrt']})Out[187]:                    A         B                      absolute  <lambda>      sqrt2000-01-01  0.428759  0.135110       NaN2000-01-02  0.168731  2.338144  1.1567822000-01-03  1.621034  1.438107  0.6618972000-01-04       NaN       NaN       NaN2000-01-05       NaN       NaN       NaN2000-01-06       NaN       NaN       NaN2000-01-07       NaN       NaN       NaN2000-01-08  0.254374 -0.240447       NaN2000-01-09  0.157795  1.791197  0.8894932000-01-10  0.030876  1.371900  0.609836

元素级函数应用

并非所有函数都能矢量化,即接受 Numpy 数组,返回另一个数组或值,DataFrame 的 applymap() 及 Series 的 map() ,支持任何接收单个值并返回单个值的 Python 函数。示例如下:

In [188]: df4Out[188]:         one       two     threea  1.394981  1.772517       NaNb  0.343054  1.912123 -0.050390c  0.695246  1.478369  1.227435d       NaN  0.279344 -0.613172In [189]: def f(x):   .....:     return len(str(x))   .....: In [190]: df4['one'].map(f)Out[190]: a    18b    19c    18d     3Name: one, dtype: int64In [191]: df4.applymap(f)Out[191]:    one  two  threea   18   17      3b   19   18     20c   18   18     16d    3   19     19

Series.map() 还有个功能,可以“连接”或“映射”第二个 Series 定义的值。这与 merging/joining 功能联系非常紧密:

In [192]: s = pd.Series(['six', 'seven', 'six', 'seven', 'six'],   .....:               index=['a', 'b', 'c', 'd', 'e'])   .....: In [193]: t = pd.Series({'six': 6., 'seven': 7.})In [194]: sOut[194]: a      sixb    sevenc      sixd    sevene      sixdtype: objectIn [195]: s.map(t)Out[195]: a    6.0b    7.0c    6.0d    7.0e    6.0dtype: float64

pandas关键字提取_Pandas中文官档~基础用法3相关推荐

  1. pandas object转float_Pandas中文官档~基础用法6

    呆鸟云:"这一系列长篇终于连载完了,还请大家关注 Python 大咖谈,这里专注 Python 数据分析,后期呆鸟还会给大家分享更多 Pandas 好文." 数据类型 大多数情况下 ...

  2. Pandas中文官档 ~ 基础用法1

    呆鸟云:"在学习 Python 数据分析的过程中,呆鸟发现直接看官档就是牛逼啊,内容全面.丰富.详细,而 Python 数据分析里最核心的莫过于 pandas,于是就想翻译 pandas 官 ...

  3. Pandas中文官档~基础用法2

    呆鸟云:"翻译不易,要么是一个词反复思索,要么是上万字一遍遍校稿修改,只为给大家翻译更准确.阅读更舒适的感受,呆鸟也不求啥,就是希望各位看官如果觉得本文有用,能给点个在看或分享给有需要的朋友 ...

  4. pandas关键字提取_pandas处理数据textrank提取关键词

    1.取出第一行内容放入content[] contents =[] contents= df.ix[:,10] #第11列数据 2.按类型提取数据 good = df.loc[df["评价类 ...

  5. dubbo官方文档中文_Pandas中文官方文档:基础用法5

    本文授权转载自Python大咖谈禁止二次转载 大家好,我是老表 阅读文本大概需要 16 分钟 建议从头开始学习,本系列前四篇 Pandas中文官方文档:基础用法1 Pandas中文官方文档:基础用法2 ...

  6. Pandas基础用法合集(中文官档)

    本节介绍 pandas 数据结构的基础用法.下列代码创建示例数据对象: In [1]: index = pd.date_range('1/1/2000', periods=8) In [2]: s = ...

  7. pandas关键字提取_使用NLP从文章中自动提取关键字

    背景 在研究和新闻文章中,关键词构成了一个重要的组成部分,因为它们提供了文章内容的简洁表示.关键词在从信息检索系统,书目数据库和搜索引擎优化中定位文章方面也起着至关重要的作用.关键词还有助于将文章分类 ...

  8. Xdebug中文文档-基础特性

    文档内容来自xdebug.org/docs,翻译时xdebug版本为2.6.我在官方文档基础上针对中文排版和教程内容的编排做了一些优化,希望中文文档看起来更容易理解. 英文原始文档地址:https:/ ...

  9. datagridview列 值提取_Pandas中的缺失值处理

    相信大家在处理数据的时候经常会发现有一些数据的缺失,这个时候便会很头大,因为有时候的缺失的数据是本来就没有的,这些数据不管就好了,有的数据虽然没有,但是也可以根据一些数据推算出来这个数据是多少然后给它 ...

最新文章

  1. 机房收费系统(VB.NET)——超具体的报表制作过程
  2. 如何搭建一个拖垮公司的技术架构?
  3. c# 操作excle
  4. postman接口自动化
  5. html5 版街头霸王,街头霸王5全DLC整合版
  6. 容器编排技术 -- Kubernetes kubectl create secret tls 命令详解
  7. R语言中package ‘xxxx’ is not available (for R version 3.2.5)解决
  8. 怎么看待传菜机器人_比拼食材原料、使用机器人传菜,餐饮业如何把握大消费时代的机遇...
  9. PHP九九乘法表代码
  10. 罗马数字转换器|罗马数字生成器
  11. AtCode ABC069 C-4-adjacent
  12. 学习使用jQuery中的on() 方法
  13. Java 算法之三色旗
  14. 操作系统之运行环境简介
  15. MacBook常用快捷键
  16. 两种方法设置Word文档的“只读模式”
  17. dbcontext的使用
  18. python 怎么import自己写的py模块
  19. 线性代数-行列式知识总结
  20. 远程面试之企业招聘新方式

热门文章

  1. 2022-2028全球激光印刷电路板钻孔机器行业调研及趋势分析报告
  2. 百分点数据科学实验室:公众环境满意度与环境质量的关联分析研究
  3. 分数方程计算机在线使用,分数方程练习题100道.doc
  4. 【汇智学堂】-JS菜鸟版过河小游戏(之十---精简代码,完整版)
  5. UC桌面1.3Patch 发布了
  6. 【miscellaneous】华为智能视频监控系统设计解决方案
  7. day92(6.12)
  8. 浅谈CRM系统之客户数据分析
  9. 对于世界之窗浏览器3.0alpha预览版的一点看法
  10. html5 audio组件禁止下载