splitting numpy array based on value
https://stackoverflow.com/questions/38277182/splitting-numpy-array-based-on-value
import numpy as np
from itertools import groupby
b = np.array([ 1, 1, 100, 1, 1, 3, 1, 1, 1])
c= [list(g) for k, g in groupby(b, lambda x: x != 100) if k]
#[[1, 1], [1, 1], [1], [1]]
d = [np.sum(k) for k in c]
# [2, 2, 1, 1]
[ [k,list(g)] for k, g in groupby(b, lambda x: x != 100)]
#[[True, [1, 1]], [False, [100]], [True, [1, 1]], [False, [100]], [True, [1]], [False, [100]], [True, [1]]]
http://blog.konghy.cn/2017/04/25/python-itertools/
groupby(iterable[, keyfunc])
对 iterable 中的元素进行分组。keyfunc 是分组函数,用于对 iterable 的连续项进行分组,如果不指定,则默认对 iterable 中的连续相同项进行分组,返回一个 (key, sub-iterator) 的迭代器。
csv
numpy.savetxt("foo.csv", a, delimiter=",")
numpy.savetxt("foo.csv", a, fmt="%s,%f,%d"delimiter=",")
存图
fig = plt.figure(figsize=(16, 8))
plt.plot(df["population"],'b',linewidth=3)
plt.plot(df_pred["population"],'r')
fig.savefig("img_order{}_ifres{}/{}_dayflag{}_num{}_predict".format(order_opt,ifres,mesh,dayflag,num_day), dpi=200, bbox_inches = 'tight')
#plt.show()
plt.close(fig)
decomposition.plot()
fig = plt.gcf()
fig.savefig("img_order{}_ifres{}/{}_dayflag{}_num{}_decomposition{}".format(order_opt,ifres,mesh,dayflag,num_day,order_local), dpi=200, bbox_inches = 'tight')
#plt.show()
颜色
有时候需要很多很多颜色又不想一个个自己定义,
from matplotlib import colors
colors_df = pd.DataFrame.from_dict(colors.cnames,orient='index')
colors_df.values
x轴每隔4个显示一次
plt.xticks(x1[::4],names[::4],rotation=90, fontsize=fs)