记录Python中的一些常用函数

0.目的

对python的使用不多,经常忘记某个函数功能如何实现。之前采用的做法是记录在本地文档上,可是时间久了总忘记放在哪里。以后打算采用博客记录+编号的形式,尽可能记录自己遇到的一些小问题,方便下次使用时自查。先挖一个坑慢慢搬运记录。

1.Python基础

001. 字符串切片

python切片语法:字符串[开始索引:结束索引:步长]
一些例子:

str = '0123456789'
str[0:3] #截取第一位到第三位的字符
str[:] #截取字符串的全部字符
str[6:] #截取第七个字符到结尾
str[:-3] #截取从头开始到倒数第三个字符之前
str[2] #截取第三个字符
str[-1] #截取倒数第一个字符
str[::-1] #创造一个与原字符串顺序相反的字符串
str[-3:-1] #截取倒数第三位与倒数第一位之前的字符
str[-3:] #截取倒数第三位到结尾
str[:-5:-3] #逆序截取

参考:[1] python如何截取字符串后几位.


002. 将numpy导出到数组

需要将python处理的数据(numpy形式)保存到数组,主要是加逗号和空格,方便在C语言中定义数组。可以利用np.savetxt完成。需要注意的是,如果需要保存为行格式,需要设置newline, 否则总是保存为一列数据。(怀疑是默认每个数据保存为一行,设置newline的格式,就可以保存为行格式了)

import numpy as np
data = np.arange(10)
np.savetxt('myfile.txt',data,fmt='%.4f',  newline=',   ',)

参考:[1] python numpy.savetxt(),np.column_stack保存(多行/列)数据 保存多维数组.


2.Pandas篇

001. 获取最大值最小值的索引

import pandas as pd
import numpy as np
data = pd.DataFrame(np.random.random((3, 3)), columns=list('ABC'), index=list('abc'))
data.idxmax()
data.idxmin()
data['A'].idxmax()  # Series 最小值
data[['A']].idxmax() #pandas 最小值索引

在一台电脑上可以运行,另外一台电脑上报错。 解决方案:转化为numpy,使用argmin函数解决
index_min = df.values.argmin() 函数解决

002. 条件删除

row_index=df[  (~df['日期'].str.contains(r'休息',na=True))  &  (df['餐补']==0)  ].index
df.drop(row_index,inplace=True)

https://www.cnblogs.com/luoditao/p/14943236.html

003. 保存两列数据到csv中;

df= pd.Dataframe(columns=['A',  'B'])
df.loc[:,  'A'  ] = 0  #先对索引初始化,否则直接赋值一列,会报错。 第二次踩坑。。
df[ ['A' ] ] = ypred
df[ ['B'] ]  = ytrue
#注意,是  df[ ['A' ] ] 而不是 df ['A' ] ,两层括号。 多列赋值不容易犯这个错误,但是单列赋值总是犯错,以为自己忘记了赋值语法

004. Dataframe 转化为matlab结构体;

有时候有pandas 中Dataframe 转化为 matlab中结构体的需求,可以避免导入MATLAB后需要重新命名一大串变量。

a_dict = {col_name : df[col_name].values for col_name in df.columns.values}

## optional if you want to save the index as an array as well:
# a_dict[df.index.name] = df.index.values
scipy.io.savemat('test_struct_to_mat.mat', {'struct':a_dict})

3.Numpy篇

4.Matplotlib篇

001. matlabplotlib 设置x,y轴标签位置

主要调整labelpad参数

plt.xlabel("特征",labelpad=8.5)
f_ax1.set_ylabel('ylabel',    fontdict= font1, labelpad= 8.5)

参考: python plt 设置坐标轴标签的位置(离坐标轴的距离)

002 修改legend 图例位置

主要是通过loc 与 bbox_to_anchor 两个参数调节位置,配合起来可能会更好用一些。
例如: loc= ‘upper center’, bbox_to_anchor=(1/5, 3/4, 6/10, 3/5)。其中,5是(x_max-x_min), 4是(y_max-y_min), 1与3分别为相对位置。

ax.legend(handles=[patch], loc='upper left', bbox_to_anchor=(1/5, 1/5, 6/10, 3/5), borderaxespad=0, fontsize=18, edgecolor='yellow'

参考:
1.matplotlib 到底该如何控制legend的位置
2.echarts label固定位置_matplotlib如何控制legend的位置之二

5.Python 包

001 pip 升级包报错

pip install xxx 时报错 ERROR: Could not install packages due to an OSError: [WinError 5] 拒绝访问。
通常是权限不足问题,考虑增加-- user 。例如修改为 pip install xxx --user

参考来源1.python 升级包报错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值