Python编程基础 - 知识汇总(持续更新)

'''

本文章将持续汇总 python 编程的基础知识,在编程中遇到不太熟悉的知识点我将不定时地汇总到本篇文章中,欢迎小伙伴们提出宝贵建议。

建议直接按照目录查找所需内容更佳

'''

大章节 - python不同数据类型

本章节介绍学习 python 的不同数据类型,包括 数值类型(整数、浮点数)、字符串

字符串

  • 字符串的索引与切片

字符串 s = '人生苦短,我学Python' 的索引如上,以下是针对字符串 s 的切片处理

s[0]
#返回'人'

s[-1]
#返回'n'

s[0:5]
#返回 '人生苦短,'

s[5:-1]
#返回 '我学Pytho' 注意:-1 取不到

s[6:]
#返回 '学Python'

s[0:6:2]
#返回 '人苦,'

s[3:7:-1]
#返回 '' 因为3-7是正向取,而-1是反向取,相互矛盾,所以返回空

  • 字符串的运算符号

+:拼接;                *:复制;                in:判断是否包含;

"AB" + "CD"
#返回 'ABCD'

'MN' + '222'
#返回 'MN222'

'123' * 3
#返回'123123123'

'H' in 'Hello'
#返回 True

'h' in "Hey"
#返回False

  • 字符串的处理函数及方法

len()        ——>        长度计算

 A = '我爱你'; B = '12345' ; C = "ABCDEFGH"
len(A)
#返回 3

len(B)
#返回 5

len(C)
#返回 8

str()        ——>           将其他类型转化成字符串类型

x = 123
y = str(x)
print(y)
#返回 '123',此时 y 的类型是字符串而不是数值,将不能进行加减乘除操作。

index()        ——>        查找字符串首次出现的位置

s = 'bird,fish,monkey,you,rabbit'
s.index('bird')
#返回 0 

s.index(i)
#返回 1

s.index('tiger')
#抛出异常

如果想要查找的字符串不存在时返回 -1 ,可以使用 find(), 用法和 index()一致

count()        ——>        计算字符串出现的次数

s = 'you are so silly, you are a pig'
s.count('you')
#返回 2

s.count('y')
#返回 3 

s.count('pig')
#返回 1

s.count('tiger')
#返回 0   

split()        ——>        字符串的分割

s = 'I,am,a,queen'
s.spilt(',')      #按照 ',' 进行分割
#返回列表 ['I','am','a','queen']

s = 'I am a boy'
s.spilt()     #按照空格进行分割
#返回列表 ['I','am','a','boy']

join()        ——>      字符串的连接

x = ['i','like','banana']
':'.join(x)
#返回 i:like:banana

'-'.join(x)
#返回 i-like-banana

lower() 、upper() 、islower()、isupper()        ——>        大小写转化、判断是否大小写

s = 'I have a Boyfriend'
s.isupper()
#返回 False

s.islower()
#返回 False

s.upper()
#返回 'I HAVE A BOYFRIEND'

s.isupper()
#返回 True

s.lower()
#返回 'i have a boyfriend'

s.islower()
#返回 True

replace()     ----->     字符串替换

str.replace() 方法来替换字符串中的字符或子串

例:
s = "Hello, World!"
new_s = s.replace("World", "Python")
print(new_s)
#输出Hello, Python!

strip()     ----->      移除字符串前后字符或空格

strip() 用于移除字符串两侧(即开头和结尾)的指定字符。如果不指定任何字符,默认情况下它会移除空格。

例:
s = "   Hello, World!   "  
print(s.strip())  # 输出: "Hello, World!"

s = "!!Hello,,World!!"  
print(s.strip('!,'))  # 输出: "Hello,World"

format()   ——>        字符串格式化

'我是{}公司的{}部门的{}'.format('大富贵','招聘','小李')
#返回 '我是大富贵公司的招聘部门的小李'

 大章节 - python内置函数

本章节介绍python各个内置函数的作用及用法

print()     ———>     输出函数

'''
print()是Python中的一个内置函数,用于输出内容到控制台。
参数 end,用于指定输出结束的字符。默认情况下,end 的值为 \n,表示换行。
'''

例:
----------------------------------------------------------------
print("Hello, world!")  # 输出:Hello, world!

----------------------------------------------------------------
name = "Alice"  
age = 30  
print("My name is", name, "and I am", age, "years old.") 
# 输出:My name is Alice and I am 30 years old.

-----------------------------------------------------------------
print("Hello, world!", end="")  # 输出:Hello, world! 并且不会换行

------------------------------------------

round()     ——>     保留小数点后几位

round() 是 Python 中的一个内置函数,用于对浮点数进行四舍五入。它接受两个参数:第一个参数是要四舍五入的浮点数,第二个参数是可选的,表示要保留的小数位数。如果不提供第二个参数,默认保留到整数。

round(3.14159)  # 结果为 3
round(3.14159, 2)  # 结果为 3.14

lambda     ——>      快速定义函数的函数

表达式:lambda arguments: expression
'''
lambda函数是一种匿名函数,也称为闭包。是一种简洁的函数定义方式。
arguments是函数的参数列表,expression是函数的返回值表达式。

例:
以下是一个简单的lambda函数,用于将输入的数字乘以2:
f = lambda x: x * 2  
print(f(5))  # 输出:10

大章节 - 数据结构

本章节介绍学习python的数据结构,包括列表、元组、字典、集合、函数

列表

  • 列表的索引与切片

列表的索引与切片同字符串的索引与切片大致相同,可参考字符串的索引与切片章节。

  • 列表的常见操作

列表元素的修改

列表名[索引] = 新值
x = ['张',111,'boy']
x[0] = '李'
print(x)
#返回 ['李',111,'boy']

列表元素的复制

a = [0] * 3
print(a)
#输出为[0,0,0]

b = ['xiaohui'] * 4
print(b)
#输出为['xiaohui','xiaohui','xiaohui']

列表元素的添加

包含两个方法:
append()    ——>    添加到尾部
insert()    ——>    指定索引添加

x = [1,2,3,4,5,6,7]

x.append('爸爸')                          #列表.append(新值)
# x 变为 [1,2,3,4,5,6,7,'爸爸']

x.insert(1,'妈妈')                        #列表.insert(索引,新值)
# x 变为 [1,'妈妈',2,3,4,5,6,7,'爸爸']

字典

  • 字典的创建

dict = {i:[] for i in range(10)}
#创建一个键为 0-9,值为空列表[]的字典

  • 字典键值对的创建与修改

# 字典键值对的创建   字典名[键】= 值
dict[10] = 100     #在字典dict中创建一个键为10,值为100的键值对    

#字典键值对的修改    字典名[键】= 值
dict[10] = 90     #将字典dict中键为10的对应的值修改成90

大章节 - 文件处理

本章节介绍学习 python 的文件处理,包括文件的路径、文件的操作、异常的处理。

绝对路径与相对路径

绝对路径是指文件系统中某一单独文件或文件夹的完整限定路径,是从文件所在的驱动器名称(又称:盘符)开始描述文件的保存位置。

例如:F:\\documents\\python\\data.txt

with open("F:\\documnets\\python\\data.txt", "r") as f:  
    content = f.read()  
    print(content)

相对路径是从当前文件或文件夹开始描述文件的保存位置。

例如:当前运行是在F:\\documents\\python里运行的,需要使用本文件夹里的data.txt文件

with open("data.txt", "r") as f:  
    content = f.read()  
    print(content)

 大章节 - python包集合

本章节介绍学习python不同包的使用,包括numpy、pandas、sklearn等。

numpy

NumPy,开源的数值计算扩展库,基于数组对象的科学计算库。它提供多维数组对象,各种派生对象,以及用于数组快速操作的各种API,包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。

NumPy的核心特点包括:拥有n维数组对象;拥有广播功能;拥有各种科学计算API。这些特点使得NumPy能够有效地提高科学计算的效率和简洁性。

  • numpy创建数组的方法

np.arange()      

numpy.arange(start, stop, step, dtype=None),用于生成一个等差数列。
start:序列的起始值,默认为0。
stop:序列的终止值(不包含)。
step:两个相邻元素之间的步长,默认为1。
dtype:输出数组的数据类型,如果未指定,则从其他输入参数推断数据类型。

例:
import numpy as np

# 生成一个从0到9的等差数列,步长为1
arr = np.arange(10)
print(arr)  # 输出:[0 1 2 3 4 5 6 7 8 9]

# 生成一个从1到9的等差数列,步长为2
arr = np.arange(1, 10, 2)
print(arr)  # 输出:[1 3 5 7 9]

np.ones().    np.zeros()

numpy.ones(shape, dtype=float, order='C')用于创建一个由1组成的数组。
shape:数组的形状,可以是整数或整数元组。
dtype:数组的数据类型,默认为float64。
order:数组元素在内存中的存储顺序,可选值为'C'(按行存储)或'F'(按列存储),默认为'C'。

例:
import numpy as np

# 创建一个2x3的全1矩阵
arr = np.ones((2, 3))
print(arr)
# 输出:
# [[1. 1. 1.]
#  [1. 1. 1.]]

# 创建一个3x3的全1矩阵,数据类型为int32
arr = np.ones((3, 3), dtype=np.int32)
print(arr)
# 输出:
# [[1 1 1]
#  [1 1 1]
#  [1 1 1]]

np.random.rand()

  • numpy库常见函数

  1. np.array():用于创建数组。
  2. np.zeros():创建一个指定形状和类型的新数组,并用0填充。
  3. np.ones():创建一个指定形状和类型的新数组,并用1填充。
  4. np.empty():创建一个指定形状的新数组,但不会初始化数组中的元素。
  5. np.arange():返回一个由等差数列构成的一维数组。
  6. np.linspace():返回在指定的间隔内均匀间隔的一维数组。
  7. np.logspace():返回在对数尺度上均匀间隔的一维数组。
  8. np.eye():返回一个二维单位矩阵。
  9. np.random.rand():返回一个或一组服从“0~1”均匀分布的随机数。
  10. np.random.randn():返回一个或一组服从标准正态分布(均值为0,方差为1)的随机数。
  11. np.dot():计算两个数组的点积。
  12. np.sum():计算数组元素的总和。
  13. np.mean():计算数组元素的平均值。
  14. np.max():找出数组中的最大值。
  15. np.min():找出数组中的最小值。
  16. np.argmax():返回最大值的索引。
  17. np.argmin():返回最小值的索引。
  18. np.sqrt():计算数组元素的平方根。
  19. np.exp():计算数组元素的指数。
  20. np.log():计算数组元素的自然对数。
  21. np.abs():计算数组元素的绝对值。
  22. np.sort():对数组进行排序。
  23. np.unique():找出数组中的唯一元素。
  24. np.reshape():改变数组的形状。
  25. np.concatenate():将多个数组连接在一起。
  26. np.split():将数组分割成多个子数组。
  27. np.insert():在指定位置插入元素到数组中。
  28. np.delete():删除数组中的元素

np.where()     ——>     按照条件筛选

np.where() 是NumPy库中的一个函数,用于根据指定的条件返回满足条件的元素的索引。

import numpy as np
# 创建一个布尔数组
arr = np.array([1, 2, 3, 4, 5])
# 使用np.where()找到大于3的元素的索引
result = np.where(arr > 3)
print(result)

#输出(array([3, 4]),)

pandas 

Pandas是Python的一个开源数据分析库,它的基础是NumPy。在Pandas中,两种主要的数据结构是Series和DataFrame。Series是一维的标签化数组对象,而DataFrame则是面向列的二维表结构。这两种数据类型分别处理单列多行和多行多列的数据,非常符合数据分析的需求。

  • pandas读取及导出数据文件

pandas 可以使用将 excel、csv 等文件导入为 DataFrame 对象进行处理分析,也可以将处理好的 DataFrame 对象进行导出存储。

例:导入 data1.excel 、 data2.csv 文件

# header 参数取 0 表示第一行作为标题行,如果文件里没有标题行,则 header 取值 None
df = pd.read_excel('data1.xlsx',header = 0)
df = pd.read_csv('data2.csv')

例:将 DataFrame 对象 df 导出为 result1.xlsx、result2.csv 、result3.html 文件

df.to_excel('result1.xlsx',sheet_name = 'sheet1')
df.to_csv('result2.csv')
df.to_html('result3.html')

  • DataFrame 数据读取

按照列名读取 DataFrame 对象 df 的一列或多列

# 按照列名读取 DataFrame 对象 df 的一列
print(df['name'])

#按照列名读取 DataFrame 对象 df 的多列时应该使用列表读取
print(df[['name','sex','class','age']]

此外,DataFrame 对象 df 也可以直接调用列名查看,返回值为一个列表。

例:返回 df 对象的 name 列

df.name        # 该返回值为 df 的对象的 name 列的列表

  •  pandas 常用函数

to_pandas()     ——>     将数据转换成 DataFrame 形式

to_pandas(first_row_is_header=True) 是一个函数调用,通常用于将数据转换为 Pandas DataFrame。

first_row_is_header=True 这个参数是用来指示第一行是否应该是列的标题。如果first_row_is_header 设置为 True,那么第一行将被视为列的名称或标题,而不是数据。

例:
# 假设我们有一个 Dask DataFrame  
ddf = ...  
# 我们可以使用 to_pandas 函数将其转换为 Pandas DataFrame  
df = to_pandas(ddf, first_row_is_header=True)  
# 现在 df 是一个 Pandas DataFrame,第一行是列的标题

set_option()     ——>     pandas库参数设置

pandas.set_option()是一个用于设置 Pandas 库的选项的命令。

例如:pd.set_option('display.max_rows', 100) ,这个命令设置了 Pandas 在显示数据框(DataFrame)时最多显示多少行数据。'display.max_rows' 是一个选项名称,而 100 是为这个选项设置的值。这意味着当你试图在 Jupyter Notebook 或其他交互式环境中显示一个大的数据框时,Pandas 将只显示前 100 行数据。

dropna()     ——>     删除空缺值的行或列

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

用于删除包含缺失值的行或列。通过调用该方法,可以清除数据框中的空值或缺失值,使数据更加整洁和准确。
'''
axis:指定删除行还是列,默认为0表示删除行,1表示删除列。
how:指定判断是否为缺失值的条件,默认为'any'表示只要存在一个缺失值就删除该行或列,还可以设置为'all'表示所有值都为缺失值才删除。
thresh:指定非缺失值的数量,当某一行或列中非缺失值的数量小于thresh时,则删除该行或列。
subset:指定要考虑的子集,可以是列名列表或行索引列表。
inplace:是否在原数据框上进行修改,默认为False表示返回一个新的数据框,如果为True则直接在原数据框上进行修改。
'''

例
# 删除包含缺失值的行
df_dropped = df.dropna()


# 删除包含缺失值的列
df_dropped_columns = df.dropna(axis=1)

sample()     ——>     对 DataFrame 表格里的数据按照行(列)进行随机抽样 

sample(n=None, frac=1.0, replace=True, weights=None, random_state=None, axis=0)
用于对DataFrame对象进行随机抽样。

'''
n:int类型,表示抽样的行数。如果为None,则抽取所有行。
frac:float类型,表示抽样的比例。例如,frac=0.5表示抽取50%的数据。
replace:bool类型,表示是否允许重复抽样。默认为True,即允许重复抽样;如果为False,则不允许重复抽样。
weights:dict类型,表示每个样本的权重。字典的键是样本的标签,值是对应的权重。
random_state:int或RandomState实例,表示随机数生成器的种子。默认为None,即使用系统默认的随机数生成器;如果指定了整数或RandomState实例,则使用指定的随机数生成器。
axis:int类型,表示抽样的轴向。默认为0,即沿着行方向进行抽样;如果为1,则沿着列方向进行抽样。
'''

例:
import pandas as pd

# 创建一个DataFrame对象
data = {'A': [1, 2, 3, 4, 5], 'B': [6, 7, 8, 9, 10]}
df = pd.DataFrame(data)

# 对DataFrame对象进行随机抽样
sampled_df = df.sample(frac=0.5)
print(sampled_df)

sort_values()     ——>      对 DataFrame 表格进行排序

DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')
用于对数据进行排序操作。它可以按照指定的列或行标签进行排序,并返回一个新的排序后的DataFrame对象。

'''
by:指定要排序的列名或行标签名,可以是单个列名、多个列名组成的列表、一个字典等。
axis:指定按行或按列进行排序,默认为0表示按行排序,1表示按列排序。
ascending:指定排序方式,True表示升序排列,False表示降序排列,默认为True。
inplace:是否在原DataFrame上进行排序,默认为False,即返回一个新的排序后的DataFrame对象。如果设置为True,则直接在原DataFrame上进行排序,不返回新的DataFrame对象。
kind:指定排序算法类型,可选值有'quicksort'(快速排序)和'mergesort'(归并排序),默认为'quicksort'。
na_position:指定缺失值的位置,可选值有'last'(放在最后)、'first'(放在最前)和'ignore'(忽略缺失值)。默认为'last'。
'''

例
#按照列进行升序排列
df.sort_values(by=['column1', 'column2'], ascending=True)

#按行进行降序排序:
df.sort_values(by=['row1', 'row2'], axis=1, ascending=False)

#在原DataFrame上进行排序:
df.sort_values(by=['column1', 'column2'], inplace=True)

#忽略缺失值进行排序:
df.sort_values(by=['column1', 'column2'], na_position='ignore')

reset_index(drop=True)     ——>     重新设置DataFrame表格索引

reset_index(drop=True) 
是一个用于重置DataFrame索引的方法。当调用此方法时,它会将原始索引列删除,并创建一个新的默认整数索引。


import pandas as pd
# 创建一个示例DataFrame
data = {'Name': ['John', 'Alice', 'Bob'],
        'Age': [25, 30, 35]}
df = pd.DataFrame(data)
# 打印原始DataFrame
print("原始DataFrame:")
print(df)
#输出以下内容:
#------------------------------------------------
#原始DataFrame:
#   Name  Age
#0  John   25
#1 Alice   30
#2   Bob   35
#------------------------------------------------

# 重置索引并删除原始索引列
df = df.reset_index(drop=True)
# 打印重置后的DataFrame
print("\n重置索引后的DataFrame:")
print(df)
#输出以下内容:
#-------------------------------------------
#重置索引后的DataFrame:
#   Name  Age
#0  John   25
#1 Alice   30
#2   Bob   35
#-------------------------------------------

iterrows()       ——>     迭代函数、 对DataFrame表格中的每一行遍历

terrows()方法
依次访问DataFrame中每一行的数据。如果你只想访问pred列的每一个值,你可以在迭代过程中选择该列.

import pandas as pd   
# 假设你有一个名为df的DataFrame,其中包含列'pred'  
df = pd.DataFrame({'pred': [0.1, 0.2, 0.3, 0.4, 0.5]})  
  
# 使用.iterrows()方法遍历每一行  
for index, row in df.iterrows():  
    # 在每次迭代中,访问pred列的值  
    print(row['pred'])

skearn

sklearn,是一个针对Python编程语言的免费软件机器学习库。它提供了各种分类、回归和聚类算法,包括但不限于支持向量机、随机森林、梯度提升、k均值和DBSCAN等。同时,sklearn还为常用的机器学习方法进行了封装,使其成为一个简单而高效的数据挖掘和数据分析工具。

  • skearn 常用函数

fit_transform()          ——>       对数据进行标准化

该方法会先对数据进行拟合(即计算均值和标准差),然后根据这些统计量将数据转换为标准化的形式

例:
from sklearn.preprocessing import StandardScaler

# 创建StandardScaler对象
scaler = StandardScaler()

# 使用fit_transform()方法拟合并转换数据
X_scaled = scaler.fit_transform(X)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值