Python代码示例
代码 1:random 模块实例
# 代码 1: random 模块实例
>>> import random # 导入 random 模块,用于生成随机数和随机操作
>>> print(random.randint(1,10)) # 调用 randint() 生成 [1, 10] 闭区间内的随机整数
1 # 输出示例:随机生成的整数(每次运行结果可能不同)>>> print(random.random()) # 调用 random() 生成 [0.0, 1.0) 半开区间内的随机浮点数
0.8413580303942549 # 输出示例:随机生成的浮点数>>> print(random.uniform(1.1 ,5.4)) # 调用 uniform() 生成 [1.1, 5.4] 区间内的随机浮点数
1.5677960288287827 # 输出示例:指定范围内的随机浮点数>>> print(random.choice('tomorrow')) # 调用 choice() 从序列(此处为字符串)中随机选择一个元素
r # 输出示例:从 'tomorrow' 中随机选中的字符>>> print(random.randrange(1,100,2)) # 调用 randrange() 生成 [1, 100) 内步长为2的随机整数(即奇数)
57 # 输出示例:符合条件的随机整数>>> a = [1,3,5,6,7] # 定义一个列表
>>> random.shuffle(a) # 调用 shuffle() 原地打乱列表元素的顺序(会修改原列表)
>>> print(a) # 打印打乱后的列表
[3, 6, 5, 1, 7] # 输出示例:打乱后的列表(每次结果可能不同)
代码2:re模块实例
>>> import re # 正则表达式的包# 方式 1:先编译正则表达式
# 步骤1:编译正则表达式,生成正则对象 pattern
>>> pattern=re.compile('\d+\.\d+')
# 步骤2:定义目标字符串(包含多个带小数点的数字和其他字符)
>>> str="1.12321,432423.32 abc 123.123 342"
# 步骤3:用正则对象的 findall() 方法提取所有匹配内容
>>> result1=pattern.findall(str)# 方式 2:直接调用 re.findall()
>>> result2=re.findall('\d+\.\d+',str)
代码 3:创建 NumPy 数组
>>> import numpy as np
>>> a = np.array([1,2,3])
>>> print(a) # 输出一维数组
[1 2 3]
>>> b = np.array([[1, 2], [3, 4]])
>>> print(b) # 输出二维数组
[[1 2][3 4]]
>>> a = np.array([[1,2,3],[4,5,6]]) # 2*3数组组成3*2数组
>>> a.shape = (3,2)
>>> print(a)
[[1 2][3 4][5 6]]
代码 4:NumPy 数据类型实例
>>> import numpy as np
>>> np.int16
>>> np.int32
>>> np.float16
>>> np.float32
>>> np.complex
>>> np.bool
>>> np.object
>>> np.string_
>>> np.unicode_
代码 5:数组初始化函数
>>> import numpy as np
>>> np.zeros([3,4])
# 生成3*4元素全为0的数组
array([[0., 0., 0., 0.],[0., 0., 0., 0.],[0., 0., 0., 0.]])
>>> np.ones((2,3,4), dtype=np.int16)
# 生成2*3*4的元素值全为1,类型为np.int16的数组
array([[[1, 1, 1, 1],[1, 1, 1, 1],[1, 1, 1, 1]],[[1, 1, 1, 1],[1, 1, 1, 1],[1, 1, 1, 1]]], dtype=int16)
>>> np.arange(1,25,5)
# 类似Python中的range函数,三个参数分别为起始值,终止值和步数
array([ 1, 6, 11, 16, 21])
>>> np.linspace(0,2,9)
# 在0-2之间生成距离相等的9个数
array([0. , 0.25, 0.5 , 0.75, 1. , 1.25, 1.5 , 1.75, 2. ])
>>> np.full((2,2),7)
# 生成2*2元素全为7的数组
array([[7, 7],[7, 7]])
>>> np.eye(3)
# 生成3*3对角线元素值全为1,其他元素全为0的数组
# 在线性代数中该数组称为3维标准矩阵
array([[1., 0., 0.],[0., 1., 0.],[0., 0., 1.]])
>>> np.random.random((2,2))
# 生成一个2*2元素值为0~1之间的随机数组
array([[0.1445834 , 0.43184781],[0.29587064, 0.31545156]])
代码 6:数组属性操作
>>> import numpy as np
>>> a=np.random.random((2,3))
>>> a.shape #求数组维度
(2, 3)
>>> len(a) #求数组行数
2
>>> a.ndim #求数组的物理维度,shape求的是矩阵维度
2
>>> a.size #求数组的元素个数
6
>>> a.dtype #求数组的元素类型
dtype('float64')
>>> a.astype(int) #转换矩阵元素类型
array([[0, 0, 0],[0, 0, 0]])
代码 7:数组运算操作
>>> import numpy as np
>>> a=np.array(((1,2,3),(1,2,3)))
>>> b=np.array(((4,5,6),(4,5,6)))
>>> a-b #数组元素相减
array([[-3, -3, -3],[-3, -3, -3]])
>>> a+b #数组元素相加
array([[5, 7, 9],[5, 7, 9]])
>>> a/b #数组对应元素相除
array([[0.25, 0.4 , 0.5 ],[0.25, 0.4 , 0.5 ]])
>>> a*b #数组对应元素相乘
array([[ 4, 10, 18],[ 4, 10, 18]])
>>> a==b #数组元素值做比较,结果返回布尔值
array([[False, False, False],[False, False, False]])
>>> a<2 #数组元素值与2比较,结果返回布尔值
array([[ True, False, False],[ True, False, False]])
>>> a.sum() #数组个元素求和,输出一个数
12
>>> a.min() #数组元素求差,输出一个数
1
代码8:Pandas模块Series对象实例
>>>import pandas as pd # 导入 pandas 库,并使用别名 pd 方便调用
>>>s1 = pd.Series() # 创建一个空的 Series 对象(pandas 中的一维维数组结构)
>>>s1 # 打印空 Series 对象
Series([], dtype: object) # 输出结果:空 Series,数据类型为 object(默认类型)
>>>s2 = pd.Series([1,2,3,4,5]) # 从 Python 列表创建 Series,自动生成默认整数索引(0,1,2,3,4)
>>>s2 # 打印 s2 的内容
# 输出结果
0 1 # 索引 0 对应的值为 1
1 2 # 索引 1 对应的值为 2
2 3 # 索引 2 对应的值为 3
3 4 # 索引 3 对应的值为 4
4 5 # 索引 4 对应的值为 5
dtype: int64 # 数据类型为 int64(64 位整数)
>>>import numpy as np # 导入 numpy 库,简写为 np
>>>data = np.array(['a','b','c','d']) # 创建一个 numpy 数组作为数据源
>>>s3 = pd.Series(data) # 从 numpy 数组创建 Series,使用默认索引
>>>s4 = pd.Series(data,index=[100,101,102,103]) # 从 numpy 数组创建 Series,指定自定义索引 [100,101,102,103]
>>>s3,s4 # 同时打印 s3 和 s4
# 输出结果
(0 a # s3 的输出,默认索引 0-3 对应值 a-d
1 b
2 c
3 d
dtype: object, # s3 的数据类型为 object
100 a # s4 的输出,自定义索引 100-103 对应值 a-d
101 b
102 c
103 d
dtype: object) # s4 的数据类型为 object
>>>data = {'a': 0., 'b': 1., 'c': 2.} # 创建字典作为数据源,键为索引,值为数据
>>>s5 = pd.Series(data) # 从字典创建 Series,默认使用字典的键作为索引
>>>s5 # 打印 s5
# 输出结果
a 0.0 # 索引 a 对应值 0.0
b 1.0 # 索引 b 对应值 1.0
c 2.0 # 索引 c 对应值 2.0
dtype: float64 # 数据类型为 float64(64 位浮点数)
>>>data = {'a': 0., 'b': 1., 'c': 2.} # 再次定义字典数据源
>>>s6 = pd.Series(data,index=['b','c','d','a']) # 从字典创建 Series,指定新索引 ['b','c','d','a']
>>>s6 # 打印 s6
b 1.0 # 索引 b 对应字典中 b 的值 1.0
c 2.0 # 索引 c 对应字典中 c 的值 2.0
d NaN # 索引 d 在字典中无对应键,值为 NaN(缺失值)
a 0.0 # 索引 a 对应字典中 a 的值 0.0
dtype: float64 # 数据类型为 float64
代码 9:Pandas 模块 DataFrame 对象实例
>>> import pandas as pd # 导入 pandas 库,简写为 pd,用于数据处理
>>> import numpy as np # 导入 numpy 库,简写为 np,用于数值计算
>>> data1 = np.array ([1,2,3,4]) # 创建第一个 numpy 数组,包含元素 [1,2,3,4]
>>> data2 = np.array ([5,6,7,8]) # 创建第二个 numpy 数组,包含元素 [5,6,7,8]
>>> s1 = pd.DataFrame ([data1, data2]) # 用两个 numpy 数组创建 DataFrame(二维表格结构)
>>> print (s1) # 打印 DataFrame s1,结果如下:0 1 2 3 # 列索引(默认从 0 开始)
0 1 2 3 4 # 行索引 0 对应的数据行(来自 data1)
1 5 6 7 8 # 行索引 1 对应的数据行(来自 data2)>>> data1 = pd.Series (np.array ([1,2,3,4])) # 用 numpy 数组创建第一个 Series(一维序列)
>>> data2 = pd.Series (np.array ([5,6,7,8])) # 用 numpy 数组创建第二个 Series(一维序列)
>>> s2 = pd.DataFrame ([data1, data2]) # 用两个 Series 创建 DataFrame(二维表格结构)
>>> print (s2) # 打印 DataFrame s2,结果如下:0 1 2 3 # 列索引(默认从 0 开始)
0 1 2 3 4 # 行索引 0 对应的数据行(来自第一个 Series)
1 5 6 7 8 # 行索引 1 对应的数据行(来自第二个 Series)>>> data1 = pd.Series (np.array ([1,2,3,4])) # 创建第一个 Series,包含元素 [1,2,3,4]
>>> data2 = pd.Series (np.array ([5,6,7,8])) # 创建第二个 Series,包含元素 [5,6,7,8]
# 方式1:通过字典典创建 DataFrame
# 字典的键 "a" 和 "b" 作为 DataFrame 的列名
# 字典的值 data1 和 data2 作为两列的数据(每个 Series 对应一列)
>>> s3 = pd.DataFrame ({"a": data1, "b": data2})
# 打印 DataFrame s3
# 输出结果中:
# 第一行是列名 "a" 和 "b"
# 左侧的 0、1、2、3 是默认行索引
# 表格中的值是两个 Series 对应位置的元素
>>> print (s3) # 打印 DataFrame s3,结果如下:a b
0 1 5
1 2 6
2 3 7
3 4 8# 方式2:用列表创建 DataFrame
# 列表中的元素 data1 和 data2 作为 DataFrame 的两行数据
# 通过 index 参数自定义行索引为 ['a','b'](替代默认的 0、1)
>>> s4 = pd.DataFrame ([data1, data2], index=['a','b'])
# 通过 columns 属性自定义列名
# 原数据有 4 个元素(对应 4 列),因此设置 4 个列名 ['a','b','c','d'] 刚好匹配
>>> s4.columns = ['a','b','c','d']
# 打印 DataFrame s4
# 输出结果中:
# 第一行是自定义列名 "a"、"b"、"c"、"d"
# 左侧的 'a'、'b' 是自定义行索引
# 表格中的值是两个 Series 中的元素(按行排列)
>>> s4 # 打印 DataFrame s4,结果如下:a b c d
a 1 2 3 4
b 5 6 7 8
代码 10: Pandas 模块 DataFrame 对象实例
代码 10: Pandas 模块 DataFrame 对象实例
import pandas as pd # 注意需要导入pandas库
a = pd.DataFrame(pd.Series([1,2,3,4,5,6]).reshape(2,3), columns=['a','b','c'], index=['x','y'])
# 按标签索引,查找 index 为 x 的元素
a.loc['x']
# 按位置索引,查找位于第 0 行的元素
a.iloc[0]
代码 11:Pandas 模块读取 excel 数据
代码 11:Pandas 模块读取 excel 数据
>>>import pandas as pd
>>>import numpy as np
# 定义 Excel 文件的完整路径,r 表示原始字符串,避免路径中的转义字符问题
>>>filefullpath = r"/home/1.xls"
# 读取 Excel 文件,skiprows=[0] 表示跳过第 1 行(索引从 0 开始)
>>>df = pd.read_excel(filefullpath,skiprows=[0])
# 打印读取到的 DataFrame 数据,展示 Excel 中的内容
>>>print(df)
# 打印 df 的数据类型,结果会显示为 pandas.core.frame.DataFrame,确认是 DataFrame 类型
>>>print(type(df))
代码 12:Pandas 模块读取 MySQL 数据
# 导入 pymysql 模块,用于连接和操作 MySQL 数据库
>>>import pymysql
# 建立与 MySQL 数据库的连接。host:数据库主机地址(localhost表示本地服务器)。user:数据库登录用户名(此处为 user1)。password:登录密码(此处为 123456)。db:要连接的数据库名称(此处为 test)。charset:字符编码(utf8 确保中文正常显示)。
>>>conn = pymysql.connect(host='localhost',user='user1',password='123456',db='test',charset='utf8')
# 定义 SQL 查询语句,查询 table_name 表中的所有数据
>>>sql = 'select * from table_name'
# 使用 pandas 的 read_sql 函数执行 SQL 查询。参数 1:要执行的 SQL 语句。参数 2:con 指定数据库连接对象(即上面创建的 conn)。执行后将查询结果转换为 DataFrame 格式存储到 df 中
>>>df = pd.read_sql(sql, con=conn)
# 关闭数据库连接,释放资源
>>>conn.close()
# 打印查询结果(DataFrame 格式),展示从数据库读取的数据
>>>print(df)
代码 13:Pandas 模块读取 csv 数据
>>>import pandas as pd
>>>import numpy as np
# 读取 CSV 文件并创建 DataFrame。'filename':CSV 文件的路径或文件名(需确保文件存在)。header=None:指定 CSV 文件没有标题行,数据从第一行开始。sep=' ':指定字段分隔符为空格(默认是逗号,根据实际文件格式调整)。names=['column1','column2']:为数据列自定义列名,此处设置为 'column1' 和 'column2'。
>>>df=pd.read_csv('filename',header=None,sep=' ',names=['column1','column2'])
# 打印读取到的 DataFrame 数据,展示 CSV 文件中的内容
>>>print(df)
代码 14:绘制直线图
import numpy as np
from matplotlib import pyplot as plt
# 生成x轴数据:创建1到10的整数序列(包含1,不包含11)
x = np.arange(1, 11)
# 计算y轴数据:基于线性关系y = 2x + 5
y = 2 * x + 5
# 设置图表标题
plt.title("Matplotlib demo")
# 设置x轴标签
plt.xlabel("x axis caption")
# 设置y轴标签
plt.ylabel("y axis caption")
# 绘制直线图,参数x为x轴数据,y为y轴数据
plt.plot(x, y)
# 显示图形窗口
plt.show()
代码 15:绘制直方图
from matplotlib import pyplot as plt # 导入 Matplotlib 的 pyplot 模块,用于绘图
import numpy as np # 导入 numpy 库,用于数据处理
# 创建一个包含15个随机整数的 numpy 数组,作为直方图的数据源
a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
# 绘制直方图
# 参数 a:要绘制直方图的数据
# 参数 bins=[0,20,40,60,80,100]:指定直方图的区间划分,共分为 [0,20)、[20,40)、[40,60)、[60,80)、[80,100] 五个区间
plt.hist(a, bins = [0,20,40,60,80,100])
# 设置直方图的标题为 "histogram"
plt.title("histogram")
# 显示绘制好的直方图
plt.show()