duangsuse::Echo
716 subscribers
4.25K photos
127 videos
583 files
6.46K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
其实本来不同的数据统计应该放不同的图表的…… Sum 和本来的 items 放一起很奇怪
Pandas 的快速 matplotlib 图表真是方便啊…… d.hist()
还能算点积… (reversed product) 🤔 argmin, argmax 是什么,cum 又是什么…
还能算单调性… is_monotonic
z.is_monotonic_decreasing (forall x0, x1. x0 < x1 => y(x0) < y(x1))
duangsuse::Echo
还能算点积… (reversed product) 🤔 argmin, argmax 是什么,cum 又是什么… 还能算单调性… is_monotonic z.is_monotonic_decreasing (forall x0, x1. x0 < x1 => y(x0) < y(x1))
虽然不会 matplotlib 和 pandas,也不会统计…… 首先看看平均分和中位数的 Pie/Rect(hist)

位值 = DataFrame()
位值['最大'] = d.max()
位值['中间'] = d.median()
位值['最小'] = d.min()
del 位值[位值['姓名']] # 不成!
位值 = 位值.aggregate(lambda xs: xs[1:-1]) # 绝望使用 修剪 seris

均值 = d.mean()
全班 = d.sum()


dt = DataFrame()
for col in 位值.columns:
dt[col] = 位值[col]
dt['平均'] = 均值
dt.plot(title='成绩概况')

然后是总分的一维分布图、语文/英语 文科/数学 的二维分布情况

语文=d['语文1']+d['语文2']
英语 = d['英语1']
for 号 in range(2,4):
英语 += d['英语'+str(号)]
数学 = d.数学


当然也可以使用 boxplot 什么的 🤔 居然还可以算 diff… 这样可以直接一些,不用把两个对象放一张图上比较看
kurt 是什么,d.melt() 好像是平铺的版本,d.stack() 是每个对象的元组
还可以用 aggerate, combine, groupby 什么的常用操作符
当然要减去就麻烦一点了

雷人的中文命名,不过没关系
s=d.stack()
(s['李煜胡'] - s['子王蒋']).plot(title='第一名和倒数第二的差距')
(刻意点名道姓)
折线
能拟合吧
平均, 中间 = d.mean(), d.median()
def pieOf(ser, *fps, **kwps):
return p.pie(ser, *fps, **kwps, labels=ser.index)

总分的 pie
zp = d.sum()
del zp['姓名'], zp['总分']
zp = zp.astype(int)
https://matplotlib.org/3.1.1/gallery/pyplots/pyplot_two_subplots.html#sphx-glr-gallery-pyplots-pyplot-two-subplots-py
https://matplotlib.org/3.1.1/gallery/subplots_axes_and_figures/align_labels_demo.html#sphx-glr-gallery-subplots-axes-and-figures-align-labels-demo-py

import numpy as n
import matplotlib.pyplot as p

def f(x): return n.cos(2* x*n.pi) *n.exp(-x)

xs0 = n.arange(0.0, 5.0, 0.1)
xs1 = n.arange(0.0, 5.0, 0.02)


p.figure()
p.subplot(211) # 2, r, c, ....
p.plot(xs0, f(xs0), marker='o', color='tab:blue')
p.plot(xs1, f(xs1), color='tab:red')

p.subplot(212)
p.plot(xs1, 2* xs1*n.pi, linestyle='--', color='tab:green')
p.show()
终于知道怎么画子图了……
语 = DataFrame()
语['A'] = d['语文1']
语['B'] = d['语文2']
外 = DataFrame()
for 号 in range(1,4):
外[chr(ord('A')+号)] = d['英语'+str(号)]
p.figure()
p.subplot(311)
pieOf(语.mean())
p.subplot(321)
pieOf(语.median())
p.subplot(331)
pieOf(语.sum())
🤔 发现不能这么用……
居然可以这么玩,xkcd 配置
IPython 真是太舒服了
过于生艹,Pie 和 bars 是失败了,而且我也不知道该放啥… 好像是全科成绩才对
艹 = DataFrame() # 其实本来用 Serie 就够了……
艹['外'] = [外.mean().mean()]
艹['语'] = [(语.A + 语.B).mean()]
艹['数'] = [d.数学.mean()]
pieOf(艹.sum())
XKCB 风格的 boxplot, hist, plot,我们可以看到,其实数学才是学生在竞争中失利最大的黑手!我们要好好…… 补习数学(绝望
z = d['总分'] # d['总分'] = d.sum()
英语=英语/3 # 英语成绩是三次考试组合的,先求平均
p.scatter(语文, 英语)
p.scatter(语文+英语,数学)
p.scatter(数学,z)
p.scatter(语文+英语,z)