Pandas空值识别,空值填充,空值过滤方法超详细解读

news2024/9/28 7:49:12

目录

Pandas默认空值处理方式

空值识别函数

isnull()/notnull()

用于查看不同行或列的空值个数

用于查看不同行或列的空值占比

空值填充函数

fillna()

使用0来填充空值

使用每列均值来填充空值

使用每列前面一个值来填充空值

使用每列后面一个值来填充空值

使用每行前一个值来填充空值

使用每行后一个值来填充空值

interpolate()

空值过滤函数

使用isnull()/notnull+any()/all()进行过滤

筛选出不含空值的行

筛选出有空值的行

dropna()


Pandas默认空值处理方式

pandas中默认会将None值转为np.nan进行处理,np.nan为float类型数据

以下为本篇博客使用的带有空值的DataFrame,可以看到输出的DataFrame中的NaN就是np.nan

import pandas as pd
import numpy as np

np.random.seed(42)
l1 = np.random.randint(10,30,(6,6))
data = pd.DataFrame(data = l1)
data.iloc[1,2] = None
data.iloc[3,5] = None
data.iloc[4,4] = None
data.iloc[4,3] = np.nan
print(data)
#     0   1     2     3     4     5
# 0  16  29  24.0  20.0  17.0  16.0
# 1  28  20   NaN  13.0  17.0  12.0
# 2  11  21  15.0  11.0  10.0  21.0
# 3  21  26  19.0  25.0  24.0   NaN
# 4  28  21  29.0   NaN   NaN  28.0
# 5  16  18  16.0  27.0  13.0  23.0

空值识别函数

isnull()/notnull()

isnull()的作用是将DataFrame中为空值的地方变为True,其余地方为False,notnull()则相反,不为空值的地方为True,其余为False

import pandas as pd
import numpy as np

np.random.seed(42)
l1 = np.random.randint(10,30,(6,6))
data = pd.DataFrame(data = l1)
data.iloc[1,2] = None
data.iloc[3,5] = None
data.iloc[4,4] = None
data.iloc[4,3] = np.nan
print(data)
print(data.isnull())
print(data.notnull())
#     0   1     2     3     4     5
# 0  16  29  24.0  20.0  17.0  16.0
# 1  28  20   NaN  13.0  17.0  12.0
# 2  11  21  15.0  11.0  10.0  21.0
# 3  21  26  19.0  25.0  24.0   NaN
# 4  28  21  29.0   NaN   NaN  28.0
# 5  16  18  16.0  27.0  13.0  23.0
#        0      1      2      3      4      5
# 0  False  False  False  False  False  False
# 1  False  False   True  False  False  False
# 2  False  False  False  False  False  False
# 3  False  False  False  False  False   True
# 4  False  False  False   True   True  False
# 5  False  False  False  False  False  False
#       0     1      2      3      4      5
# 0  True  True   True   True   True   True
# 1  True  True  False   True   True   True
# 2  True  True   True   True   True   True
# 3  True  True   True   True   True  False
# 4  True  True   True  False  False   True
# 5  True  True   True   True   True   True

用于查看不同行或列的空值个数

若需要显示不同行或列的空值个数,由于布尔类型数据在参与运算的时候True会默认转为1,False会默认转为0,所以只需要isnull()再加上sum()聚合函数即可,通过设置其axis参数来进行每行或每列的求和,值就为空值个数

import pandas as pd
import numpy as np

np.random.seed(42)
l1 = np.random.randint(10,30,(6,6))
data = pd.DataFrame(data = l1,index=list('ABCDEF'),columns=list('abcdef'))
data.iloc[1,2] = None
data.iloc[3,5] = None
data.iloc[4,4] = None
data.iloc[4,3] = np.nan
print(data)
print(data.isnull().sum(axis=0))
print(data.isnull().sum(axis=1))
#     a   b     c     d     e     f
# A  16  29  24.0  20.0  17.0  16.0
# B  28  20   NaN  13.0  17.0  12.0
# C  11  21  15.0  11.0  10.0  21.0
# D  21  26  19.0  25.0  24.0   NaN
# E  28  21  29.0   NaN   NaN  28.0
# F  16  18  16.0  27.0  13.0  23.0
# a    0
# b    0
# c    1
# d    1
# e    1
# f    1
# dtype: int64
# A    0
# B    1
# C    0
# D    1
# E    2
# F    0
# dtype: int64

可以看到这里值为0的时候是沿行方向进行每一列的求和运算,为1的时候是沿列方向进行每一行的求和运算,得到的就为空值个数

用于查看不同行或列的空值占比

若要查看空值占比同样也只需要加上mean()聚合函数即可,mean()为和再除上个数,在布尔类型数据进行如此运算后,结果就为空值占比,同样也可以指定axis来选择行或列进行计算

import pandas as pd
import numpy as np

np.random.seed(42)
l1 = np.random.randint(10,30,(6,6))
data = pd.DataFrame(data = l1,index=list('ABCDEF'),columns=list('abcdef'))
data.iloc[1,2] = None
data.iloc[3,5] = None
data.iloc[4,4] = None
data.iloc[4,3] = np.nan
print(data)
print(data.isnull().mean(axis=0))
print(data.isnull().mean(axis=1))
#     a   b     c     d     e     f
# A  16  29  24.0  20.0  17.0  16.0
# B  28  20   NaN  13.0  17.0  12.0
# C  11  21  15.0  11.0  10.0  21.0
# D  21  26  19.0  25.0  24.0   NaN
# E  28  21  29.0   NaN   NaN  28.0
# F  16  18  16.0  27.0  13.0  23.0
# a    0.000000
# b    0.000000
# c    0.166667
# d    0.166667
# e    0.166667
# f    0.166667
# dtype: float64
# A    0.000000
# B    0.166667
# C    0.000000
# D    0.166667
# E    0.333333
# F    0.000000
# dtype: float64

空值填充函数

空值填充一般会用到fillna()函数

fillna()

fillna()可以选用指定值作为空值填充,通过配置value参数即可设置填充值,并且支持列索引对齐的广播赋值,注意这里不支持行索引对齐的广播赋值机制,即使改变axis的值也不可以,并且支持通过配置method参数进行指定方式的空值赋值,method可选的有‘ffill’和‘bfill’,分别指用前一个值来填充空值和用后一个值来填充空值

使用0来填充空值
import pandas as pd
import numpy as np

np.random.seed(42)
l1 = np.random.randint(10,30,(6,6))
data = pd.DataFrame(data = l1,index=list('ABCDEF'),columns=list('abcdef'))
data.iloc[1,2] = None
data.iloc[3,5] = None
data.iloc[4,4] = None
data.iloc[4,3] = np.nan
print(data)
print(data.fillna(value=0))

#     a   b     c     d     e     f
# A  16  29  24.0  20.0  17.0  16.0
# B  28  20   NaN  13.0  17.0  12.0
# C  11  21  15.0  11.0  10.0  21.0
# D  21  26  19.0  25.0  24.0   NaN
# E  28  21  29.0   NaN   NaN  28.0
# F  16  18  16.0  27.0  13.0  23.0
#     a   b     c     d     e     f
# A  16  29  24.0  20.0  17.0  16.0
# B  28  20   0.0  13.0  17.0  12.0
# C  11  21  15.0  11.0  10.0  21.0
# D  21  26  19.0  25.0  24.0   0.0
# E  28  21  29.0   0.0   0.0  28.0
# F  16  18  16.0  27.0  13.0  23.0

使用每列均值来填充空值
import pandas as pd
import numpy as np

np.random.seed(42)
l1 = np.random.randint(10,30,(6,6))
data = pd.DataFrame(data = l1,index=list('ABCDEF'),columns=list('abcdef'))
data.iloc[1,2] = None
data.iloc[3,5] = None
data.iloc[4,4] = None
data.iloc[4,3] = np.nan
print(data)
print(data.fillna(value=data.mean(axis = 0)))

#     a   b     c     d     e     f
# A  16  29  24.0  20.0  17.0  16.0
# B  28  20   NaN  13.0  17.0  12.0
# C  11  21  15.0  11.0  10.0  21.0
# D  21  26  19.0  25.0  24.0   NaN
# E  28  21  29.0   NaN   NaN  28.0
# F  16  18  16.0  27.0  13.0  23.0
#     a   b     c     d     e     f
# A  16  29  24.0  20.0  17.0  16.0
# B  28  20  20.6  13.0  17.0  12.0
# C  11  21  15.0  11.0  10.0  21.0
# D  21  26  19.0  25.0  24.0  20.0
# E  28  21  29.0  19.2  16.2  28.0
# F  16  18  16.0  27.0  13.0  23.0

使用每列前面一个值来填充空值
import pandas as pd
import numpy as np

np.random.seed(42)
l1 = np.random.randint(10,30,(6,6))
data = pd.DataFrame(data = l1,index=list('ABCDEF'),columns=list('abcdef'))
data.iloc[1,2] = None
data.iloc[3,5] = None
data.iloc[4,4] = None
data.iloc[4,3] = np.nan
print(data)
print(data.fillna(method='ffill',axis=0))

#     a   b     c     d     e     f
# A  16  29  24.0  20.0  17.0  16.0
# B  28  20   NaN  13.0  17.0  12.0
# C  11  21  15.0  11.0  10.0  21.0
# D  21  26  19.0  25.0  24.0   NaN
# E  28  21  29.0   NaN   NaN  28.0
# F  16  18  16.0  27.0  13.0  23.0
#     a   b     c     d     e     f
# A  16  29  24.0  20.0  17.0  16.0
# B  28  20  24.0  13.0  17.0  12.0
# C  11  21  15.0  11.0  10.0  21.0
# D  21  26  19.0  25.0  24.0  21.0
# E  28  21  29.0  25.0  24.0  28.0
# F  16  18  16.0  27.0  13.0  23.0

这里设置了axis为0表示沿行方向计算

使用每列后面一个值来填充空值
import pandas as pd
import numpy as np

np.random.seed(42)
l1 = np.random.randint(10,30,(6,6))
data = pd.DataFrame(data = l1,index=list('ABCDEF'),columns=list('abcdef'))
data.iloc[1,2] = None
data.iloc[3,5] = None
data.iloc[4,4] = None
data.iloc[4,3] = np.nan
print(data)
print(data.fillna(method='bfill',axis=0))
# 
#     a   b     c     d     e     f
# A  16  29  24.0  20.0  17.0  16.0
# B  28  20   NaN  13.0  17.0  12.0
# C  11  21  15.0  11.0  10.0  21.0
# D  21  26  19.0  25.0  24.0   NaN
# E  28  21  29.0   NaN   NaN  28.0
# F  16  18  16.0  27.0  13.0  23.0
#     a   b     c     d     e     f
# A  16  29  24.0  20.0  17.0  16.0
# B  28  20  15.0  13.0  17.0  12.0
# C  11  21  15.0  11.0  10.0  21.0
# D  21  26  19.0  25.0  24.0  28.0
# E  28  21  29.0  27.0  13.0  28.0
# F  16  18  16.0  27.0  13.0  23.0

使用每行前一个值来填充空值
import pandas as pd
import numpy as np

np.random.seed(42)
l1 = np.random.randint(10,30,(6,6))
data = pd.DataFrame(data = l1,index=list('ABCDEF'),columns=list('abcdef'))
data.iloc[1,2] = None
data.iloc[3,5] = None
data.iloc[4,4] = None
data.iloc[4,3] = np.nan
print(data)
print(data.fillna(method='ffill',axis=1))

#     a   b     c     d     e     f
# A  16  29  24.0  20.0  17.0  16.0
# B  28  20   NaN  13.0  17.0  12.0
# C  11  21  15.0  11.0  10.0  21.0
# D  21  26  19.0  25.0  24.0   NaN
# E  28  21  29.0   NaN   NaN  28.0
# F  16  18  16.0  27.0  13.0  23.0
#       a     b     c     d     e     f
# A  16.0  29.0  24.0  20.0  17.0  16.0
# B  28.0  20.0  20.0  13.0  17.0  12.0
# C  11.0  21.0  15.0  11.0  10.0  21.0
# D  21.0  26.0  19.0  25.0  24.0  24.0
# E  28.0  21.0  29.0  29.0  29.0  28.0
# F  16.0  18.0  16.0  27.0  13.0  23.0

这里axis为1表示沿列方向计算 

使用每行后一个值来填充空值
import pandas as pd
import numpy as np

np.random.seed(42)
l1 = np.random.randint(10,30,(6,6))
data = pd.DataFrame(data = l1,index=list('ABCDEF'),columns=list('abcdef'))
data.iloc[1,2] = None
data.iloc[3,5] = None
data.iloc[4,4] = None
data.iloc[4,3] = np.nan
print(data)
print(data.fillna(method='bfill',axis=1))

#     a   b     c     d     e     f
# A  16  29  24.0  20.0  17.0  16.0
# B  28  20   NaN  13.0  17.0  12.0
# C  11  21  15.0  11.0  10.0  21.0
# D  21  26  19.0  25.0  24.0   NaN
# E  28  21  29.0   NaN   NaN  28.0
# F  16  18  16.0  27.0  13.0  23.0
#       a     b     c     d     e     f
# A  16.0  29.0  24.0  20.0  17.0  16.0
# B  28.0  20.0  13.0  13.0  17.0  12.0
# C  11.0  21.0  15.0  11.0  10.0  21.0
# D  21.0  26.0  19.0  25.0  24.0   NaN
# E  28.0  21.0  29.0  28.0  28.0  28.0
# F  16.0  18.0  16.0  27.0  13.0  23.0

interpolate()

interpolate()可以进行线性插值,通过设置axis来选择进行行方向的线性插值还是列方向的线性插值

import pandas as pd
import numpy as np

np.random.seed(42)
l1 = np.random.randint(10,30,(6,6))
data = pd.DataFrame(data = l1,index=list('ABCDEF'),columns=list('abcdef'))
data.iloc[1,2] = None
data.iloc[3,5] = None
data.iloc[4,4] = None
data.iloc[4,3] = np.nan
print(data)
print(data.interpolate(axis=0))

#     a   b     c     d     e     f
# A  16  29  24.0  20.0  17.0  16.0
# B  28  20   NaN  13.0  17.0  12.0
# C  11  21  15.0  11.0  10.0  21.0
# D  21  26  19.0  25.0  24.0   NaN
# E  28  21  29.0   NaN   NaN  28.0
# F  16  18  16.0  27.0  13.0  23.0
#     a   b     c     d     e     f
# A  16  29  24.0  20.0  17.0  16.0
# B  28  20  19.5  13.0  17.0  12.0
# C  11  21  15.0  11.0  10.0  21.0
# D  21  26  19.0  25.0  24.0  24.5
# E  28  21  29.0  26.0  18.5  28.0
# F  16  18  16.0  27.0  13.0  23.0
import pandas as pd
import numpy as np

np.random.seed(42)
l1 = np.random.randint(10,30,(6,6))
data = pd.DataFrame(data = l1,index=list('ABCDEF'),columns=list('abcdef'))
data.iloc[1,2] = None
data.iloc[3,5] = None
data.iloc[4,4] = None
data.iloc[4,3] = np.nan
print(data)
print(data.interpolate(axis=1))

#     a   b     c     d     e     f
# A  16  29  24.0  20.0  17.0  16.0
# B  28  20   NaN  13.0  17.0  12.0
# C  11  21  15.0  11.0  10.0  21.0
# D  21  26  19.0  25.0  24.0   NaN
# E  28  21  29.0   NaN   NaN  28.0
# F  16  18  16.0  27.0  13.0  23.0
#       a     b     c          d          e     f
# A  16.0  29.0  24.0  20.000000  17.000000  16.0
# B  28.0  20.0  16.5  13.000000  17.000000  12.0
# C  11.0  21.0  15.0  11.000000  10.000000  21.0
# D  21.0  26.0  19.0  25.000000  24.000000  24.0
# E  28.0  21.0  29.0  28.666667  28.333333  28.0
# F  16.0  18.0  16.0  27.000000  13.000000  23.0

空值过滤函数

使用isnull()/notnull+any()/all()进行过滤

筛选出不含空值的行
import pandas as pd
import numpy as np

np.random.seed(42)
l1 = np.random.randint(10,30,(6,6))
data = pd.DataFrame(data = l1,index=list('ABCDEF'),columns=list('abcdef'))
data.iloc[1,2] = None
data.iloc[3,5] = None
data.iloc[4,4] = None
data.iloc[4,3] = np.nan
print(data)
print(data.loc[data.notnull().all(axis=1)])

#     a   b     c     d     e     f
# A  16  29  24.0  20.0  17.0  16.0
# B  28  20   NaN  13.0  17.0  12.0
# C  11  21  15.0  11.0  10.0  21.0
# D  21  26  19.0  25.0  24.0   NaN
# E  28  21  29.0   NaN   NaN  28.0
# F  16  18  16.0  27.0  13.0  23.0
#     a   b     c     d     e     f
# A  16  29  24.0  20.0  17.0  16.0
# C  11  21  15.0  11.0  10.0  21.0
# F  16  18  16.0  27.0  13.0  23.0

筛选出有空值的行
import pandas as pd
import numpy as np

np.random.seed(42)
l1 = np.random.randint(10,30,(6,6))
data = pd.DataFrame(data = l1,index=list('ABCDEF'),columns=list('abcdef'))
data.iloc[1,2] = None
data.iloc[3,5] = None
data.iloc[4,4] = None
data.iloc[4,3] = np.nan
print(data)
print(data.loc[data.isnull().any(axis=1)])

#     a   b     c     d     e     f
# A  16  29  24.0  20.0  17.0  16.0
# B  28  20   NaN  13.0  17.0  12.0
# C  11  21  15.0  11.0  10.0  21.0
# D  21  26  19.0  25.0  24.0   NaN
# E  28  21  29.0   NaN   NaN  28.0
# F  16  18  16.0  27.0  13.0  23.0
#     a   b     c     d     e     f
# B  28  20   NaN  13.0  17.0  12.0
# D  21  26  19.0  25.0  24.0   NaN
# E  28  21  29.0   NaN   NaN  28.0

dropna()

dropna()相当于是集成后的删除空值所在列或行的函数,

axis参数用于指定是删除行还是列,为0表示删除有空值的行,为1代表删除有空值的列,

how参数可以指定为‘any’或‘all’,any表示有空值就删,all表示全为空则删,

subset参数要求赋值一个列表,比如在进行行删除的时候,可以选择用于判断是否具有空值的列,反之在进行列删除的时候可以选择判断是否具有空值的行,

inplace参数表示是否覆盖原内存

import pandas as pd
import numpy as np

np.random.seed(42)
l1 = np.random.randint(10,30,(6,6))
data = pd.DataFrame(data = l1,index=list('ABCDEF'),columns=list('abcdef'))
data.iloc[1,2] = None
data.iloc[3,5] = None
data.iloc[4,4] = None
data.iloc[4,3] = np.nan
print(data)
print(data.dropna(axis=1,how='any',subset=['E','D']))
print(data.dropna(axis=0,how='any',subset=['e','d']))


#     a   b     c     d     e     f
# A  16  29  24.0  20.0  17.0  16.0
# B  28  20   NaN  13.0  17.0  12.0
# C  11  21  15.0  11.0  10.0  21.0
# D  21  26  19.0  25.0  24.0   NaN
# E  28  21  29.0   NaN   NaN  28.0
# F  16  18  16.0  27.0  13.0  23.0
#     a   b     c
# A  16  29  24.0
# B  28  20   NaN
# C  11  21  15.0
# D  21  26  19.0
# E  28  21  29.0
# F  16  18  16.0
#     a   b     c     d     e     f
# A  16  29  24.0  20.0  17.0  16.0
# B  28  20   NaN  13.0  17.0  12.0
# C  11  21  15.0  11.0  10.0  21.0
# D  21  26  19.0  25.0  24.0   NaN
# F  16  18  16.0  27.0  13.0  23.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2172864.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

0基础学习PyTorch——GPU上训练和推理

大纲 创建设备训练推理总结 在《Windows Subsystem for Linux——支持cuda能力》一文中,我们让开发环境支持cuda能力。现在我们要基于《0基础学习PyTorch——时尚分类(Fashion MNIST)训练和推理》,将代码修改成支持cuda的训练和推…

[sql-03] 求阅读至少两章的人数

准备数据 CREATE TABLE book_read (bookid varchar(150) NOT NULL COMMENT 书籍ID,username varchar(150) DEFAULT NULL COMMENT 用户名,seq varchar(150) comment 章节ID ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT 用户阅读表insert into book_read values(《太子日子》…

MindSearch 部署到Github Codespace 和 Hugging Face Space

和原有的CPU版本相比区别是把internstudio换成了github codespace。 教程是https://github.com/InternLM/Tutorial/blob/camp3/docs/L2/MindSearch/readme_github.md 复现步骤: 根据教材安装环境和创建硅基流动 API 然后启动前后端 然后按照教材部署到 Huggi…

安宝特案例 | 某知名日系汽车制造厂,借助AR实现智慧化转型

案例介绍 在全球制造业加速数字化的背景下,工厂的生产管理与设备维护效率愈发重要。 某知名日系汽车制造厂当前面临着设备的实时监控、故障维护,以及跨地域的管理协作等挑战,由于场地分散和突发状况的不可预知性,传统方式已无法…

计算机的错误计算(一百零六)

摘要 探讨含有变元负的整数次方的多项式的计算精度问题。 计算机的错误计算(一百零五)给出了一个传统多项式的错误计算案例;本节探讨含有变元负的整数次方的多项式的计算精度问题。 例1. 已知 计算 若在Python下计算,则有&…

猎板PCB大讲堂:PCB谐振效应及其对设计的影响

在PCB设计中,谐振效应是一个不可忽视的问题,它可能导致信号完整性问题、电源分配系统(PDS)工作异常,甚至成为EMI辐射源。以下是关于PCB谐振效应的一些详细信息: 1. 谐振产生的原因: - PCB中…

d2l | 目标检测数据集:RuntimeError: No such operator image::read_file

目录 1 存在的问题2 可能的解决方案3 最终的解决方案3.1 方案一(我已弃用)3.2 方案二(基于方案一)3.3 方案三(基于方案一) 1 存在的问题 李沐老师提供的读取香蕉数据集的函数如下: def…

Ubuntu系统设置bond双网卡

这里我的服务器是Ubuntu 22.04.3 LTS,是高阶版本,设置网卡需要通过netplan 根据你的Ubuntu版本(如使用Netplan或/etc/network/interfaces),选择相应的配置方法。 我这边以root用户登录进服务器,就不需要普通用户每次在命令前添加sudo 1.通常/etc/netplan下配置文件名形…

IDEA开发SpringBoot项目基础入门教程。包括Spring Boot简介、IDEA创建相关工程及工程结构介绍、书写配置文件、Bean对象管理等内容

文章目录 0. 关于本文1. 概述1.1 Spring简介1.2 Spring Boot简介1.3 传统的开发方式1.3.1 简述1.3.2 缺点 1.4 Spring Boot的优点 2. 创建一个简单的Spring Boot应用程序2.1 在IDEA创建项目2.2 pom配置文件内容2.3 启动类2.4 创建Controller 3. 从Maven工程创建Spring Boot工程…

数据结构~二叉搜索树

文章目录 一、二叉搜索树的概念二、二叉搜索树的结构二叉搜索树的性能分析二叉搜索树的插入二叉搜索树的查找二叉搜索树的删除 三、二叉搜索树key和key/value使用场景四、二叉搜索树的练习将二叉搜索树就地转化为已排序的双向循环链表从前序与中序遍历序列构造二叉树二叉树的前…

jmeter-请求参数加密-MD5加密

方法1 :使用jmeter自带的函数助手digest Tool(工具)---Function Helper Dialog(函数助手对话框) 第一个参数是要md5加密的值,第二个参数是保存加密后值的变量 ( 此处变量是从txt文件导入的,所以使用的是${wd} ) …

excel统计分析(1):列联表分析与卡方检验

列联表:用于展示两个或多个分类变量之间频数关系的表格。——常用于描述性分析卡方检验:通过实际频数和期望频数(零假设为真情况下的频数),反映了观察频数与期望频数之间的差异程度,来评估两个变量是否独立…

Metasploit渗透测试之服务端漏洞利用

简介 在之前的文章中,我们学习了目标的IP地址,端口,服务,操作系统等信息的收集。信息收集过程中最大的收获是服务器或系统的操作系统信息。这些信息对后续的渗透目标机器非常有用,因为我们可以快速查找系统上运行的服…

System Timer (STM)

文章目录 1. 介绍2. 功能特性3. 应用场景4. 功能介绍4.1 TIME0 ~TIME6计数器精度与定时范围4.2 比较器工作原理4.3 中断处理 5. Ifx Demo5.1 STM_Interrupt_1_KIT_TC277_TFT5.2 STM_System_Time_1_KIT_TC275_LK5.3 SMU_Reset_Alarm_1_KIT_TC275_LK 1. 介绍 Ifx TC37x拥有3个自…

前端大模型入门:使用Transformers.js实现纯网页版RAG(一)

我将使用两篇文章的篇幅,教大家如何实现一个在网页中运行的RAG系统。本文将其前一半功能:深度搜索。 通过这篇文章,你可以了解如何在网页中利用模型实现文本相似度计算、问答匹配功能,所有的推理都在浏览器端本地执行,…

C语言-IO

一,阻塞IO与非阻塞IO 简介: IO的本质是基于操作系统接口来控制底层的硬件之间数据传输,并且在操作系统中实现了多种不同的 IO 方式(模型),比较常见的有下列三种 阻塞型IO模型 非阻塞型IO模型 多路复用IO模型 在 C 语言中&#…

牛客SQL练习详解 02:条件查询

牛客SQL练习详解 02:条件查询 1、基础排序sql36 查找后排序sql37 查找后多列排序sql38 查找后降序排列 2、基础操作符sql6 查找学校时北大的学生信息sql7 查找年龄大于24岁的用户信息sql8 查找某个年龄段的用户信息sql9 查找chuchu 3、高级操作符sql11 高级操作符练…

认知杂谈91《菜鸟的自我修炼:减少过度干预》

内容摘要:          在投资和生活中,动作过多往往因情绪波动和缺乏计划而引发亏损。历史上的安史之乱和现代投资中的频繁交易都是例证。要管理情绪,首先要认识自己的情绪模式,然后改变消极的思考方式,并通过合…

『USB3.0Cypress』QT基于cyusb_linux_1.0.5开发上位机

文章目录 1.CyUSB Suite2.搭建开发环境3.Cyusb的应用4.疑问解决5.传送门1.CyUSB Suite CyUSB Suite for Linux是一个围绕现有开源用户空间USB库libusb的wrapper。CyUSB套件通过围绕libusb的简化包装器以及在下载固件后提供用于测试外围设备的基础设施,让您快速入门。换句话说…

1.6 物理层

欢迎大家订阅【计算机网络】学习专栏,开启你的计算机网络学习之旅! 文章目录 前言1 物理层的基本概念1.1 定义1.2 作用1.3 物理层的主要任务 2 数据通信的基础知识2.1 常用术语2.2 信号2.3 码元2.4 信道2.5 数据通信系统模型 3 信道的极限容量3.1 基本术…