【Python】常用函数汇总

本篇文章汇总了在工程代码中,常用的Python函数语句的功能及用法,正在持续更新中……


常规函数

基础函数注意点

  • os.listdir(*path)返回的是list类型的文件名,并非子文件路径,且返回值是乱序的,根据实际要求,需要额外编写排序命令
  • xxx.sort()用于list类型变量的自动排序:()内可设置排序参照变量key
import re, os
files = os.listdir("./images/")
# 根据上述文件夹下文件名中出现的数字大小(仅有一段数字时),对所有文件名进行排序(由小到大)
files.sort(key=lambda x: re.findall(r"\d+",x))
  • os.path.join(*arg1, *arg2, *arg3)会在各个输入参数间添加\/,表示文件夹层级的嵌套,因此需要拼接文件名称时,需要用str("str1" + "str2")来定义
  • xxx.append()表示list类型变量在列表末尾添加元素:可以从空列表开始添加,且仅增加元素,不会嵌套内层列表。

enumerate()

功能:遍历列表/字符串/元组,返回下标及元素

seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
	print(i, element)
'''输出:
0 one
1 two
2 three
'''

xxx.astype()

转换数据类型(bool,int,float之间转换)

import numpy as np
data = np.random.normal(0, 1, (1, 5))
# data = array([[1.766, -1.765, 2.576, -1.469, 1.69]])
threshold = 0
test1 = (data > threshold)
# test1 = array([[True, False, True, False, True]], dtype=bool)
test2 = test1.astype(int)
# test2 = array([[1, 0, 1, 0, 1]])

xxx.startwith()或xxx.endwith()

判断字符串是否以...开头或结尾

  • xxx需要是字符串类型
  • ()内可以是字符类型或数值类型
  • 返回值为bool类型
import os
path = "./Pictures/images/"
files = os.listdir(path)  # 获取该路径下所有文件名(list类型)
for filename in files:
	if filename.startswith("img"):
		print(filename)  # 打印以'img'开头的文件名
	if filename.endswith(".jpg"):
		print(filename)  # 打印以'.jpg'结尾的文件名

re.findall()

正则表达式:提取字符串中的数字

import re  # 导入正则表达式模块
string = "#$1.23,zimu3,520.1314, 300"

# 获取所有数字
print(re.findall(r"\d+",string))
# 数字输出结果:['1', '23', '3', '520', '1314', '300']

# 获取所有数值(包含小数一起识别匹配)
print(re.findall(r"\d+\.?\d*",string))
# 数值输出结果:['1.23', '3', '520.1314', '300']

Numpy 函数

np.cumsum()

功能:矩阵按照axis方向依次累加

import numpy as np
c=[[1,2,3],[4,5,6],[7,8,9]]
np.cumsum(c,axis=0)
'''输出:
array([[ 1,  2,  3],
       [ 5,  7,  9],
       [12, 15, 18]])'''
np.cumsum(c,axis=1)
'''输出:
array([[ 1,  3,  6],
       [ 4,  9, 15],
       [ 7, 15, 24]])'''

np.diff()

计算矩阵相邻行/列的差值

import numpy as np
x = np.array([[1, 3, 6, 10], [0, 5, 6, 8]])
np.diff(x)
'''输出:
array([[2, 3, 4],
       [5, 1, 2]])'''
np.diff(x, axis=0)
'''输出:
array([[-1,  2,  0, -2]])'''

np.all()

矩阵按行/列逻辑与

import numpy as np
arr = np.array([[True,True],[False,True]])                                                                                                                           
print(np.all(arr,axis=0))  # 矩阵在垂直方向,即列方向,计算逻辑与                                                                                                                                                
# 输出:array([False, True])
print(np.all(arr,axis=1))  # 矩阵在水平方向,即行方向,计算逻辑与                                                                                                                                                           
# 输出:array([True, False])

arr = np.array([[2, 3, 1],[-1, 2, -1]])
print(np.all(arr>0, axis=0))
# 输出:array([False, True, False])
print(np.all(arr>0, axis=1))
# 输出:array([True, False])

np.transpose()

矩阵转置

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])
# 这里可以三种方法达到转置的目的
# 第一种方法
print(arr.T)
# 第二种方法
print(arr.transpose())
# 第三种方法
print(arr.swapaxes(0, 1))
# 上面三种方法等价
'''三种方法的输出结果均为:
[[ 1  4  7 10]
 [ 2  5  8 11]
 [ 3  6  9 12]]
'''

np.reshape()

转换数组/矩阵维度

  • ()内可以是:[53, 63, 52]这样的list表示shape;也可以填(-1, 25) / (50, -1),其中 -1 表示自动计算列数/行数
  • 转换前后要可以整除(例如:[25,4]不可以转换为[30,-1])
shape = data.shape  # shape = [53, 63, 52, 4, 111]
series = data.reshape(-1, 444)  # series.shape = [173628, 444]
img = series.reshape([53, 63, 52, 444])  # img.shape = [53, 63, 52, 444]

Pandas 函数

pd.ge()等二元运算函数

对DataFrame类型的数据内所有值,根据给定阈值和判断条件,进行二元逻辑运算

二元运算函数eqneleltgegt
对应二元逻辑运算==!=<=<>=>
import pandas as pd
df = pd.DataFrame({'cost':[250, 150, 100],
				   'revenue':[100, 250, 300]}, index=['A', 'B', 'C'])
print(df)
'''
   cost  revenue
A   250      100
B   150      250
C   100      300
'''
print(df == 100)
print(df.eq(100))
'''上面两种方式的输出结果均为:
    cost  revenue
A  False     True
B  False    False
C   True    False
'''

pd.quantile()

分位数统计(例如:统计数值的前10%)

import pandas as pd
import numpy as np
a = np.array([[1,2,3,4,5,6,7,8,9], [9,8,7,6,5,4,3,2,1]])  # a.shape = [2, 9]
df = pd.DataFrame(a)  # df.shape = [2, 9]
b = df.quantile(0.8, axis=1)
print(b)
'''输出DataFrame类型:
0  7.4
1  7.4
'''
top20 = df.ge(b, axis=0)
print(top20)
'''输出DataFrame类型:
      0     1     2     3     4     5     6     7     8
0 False False False False False False False  True  True
1 True  True  False False False False False False False
'''

Matplotlib 函数

Matplotlib.pyplot相关函数

  • plt.figure(figsize=(15,10)):另起一张新的画布(可选:画布尺寸为宽度15,高度10)
  • plt.subplot(arg1, arg2, arg3):画幅为arg1行,arg2列,当前图像为第arg3幅
  • plt.title(“题目”):为当前图像设置标题
  • img.set_xlim(1995, 2020):设置x轴数据区间
  • img.set_xlabel(“Years”):设置x轴标签
  • plt.imshow(img):将数据img转换为图像,写入当前位置
  • plt.show():展示画布

os 函数

mkdir()与makedirs()

  • mkdir():创建单级目录/文件夹
  • makedirs():创建多目录/文件夹
  • 两者共同点:当待创建的文件夹已存在时,均报错,因此常用下列语句创建文件夹
if not os.path.exists(folder):
	os.mkdir(folder)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值