数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- CNN:图像分类
- 循环神经网络 RNN
- Transformer
- 一、Transformer [2017]
- 二、Universal Transformer [2018]
- 三、Transformer-XL [2019]
- 四、GPT1 [2018]
- 五、GPT2 [2019]
- 六、GPT3 [2020]
- 七、OPT [2022]
- 八、BERT [2018]
- 九、XLNet [2019]
- 十、RoBERTa [2019]
- 十一、ERNIE 1.0 [2019]
- 十二、ERNIE 2.0 [2019]
- 十三、ERNIE 3.0 [2021]
- 十四、ERNIE-Huawei [2019]
- 十五、MT-DNN [2019]
- 十六、BART [2019]
- 十七、mBART [2020]
- 十八、SpanBERT [2019]
- 十九、ALBERT [2019]
- 二十、UniLM [2019]
- 二十一、MASS [2019]
- 二十二、MacBERT [2019]
- 二十三、Fine-Tuning Language Models from Human Preferences [2019]
- 二十四 Learning to summarize from human feedback [2020]
- 二十五、InstructGPT [2022]
- 二十六、T5 [2020]
- 二十七、mT5 [2020]
- 二十八、ExT5 [2021]
- 二十九、Muppet [2021]
- 三十、Self-Attention with Relative Position Representations [2018]
- 三十一、USE [2018]
- 三十二、Sentence-BERT [2019]
- 三十三、SimCSE [2021]
- 三十四、BERT-Flow [2020]
- 三十五、BERT-Whitening [2021]
- 三十六、Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings [2019]
- 三十七、CERT [2020]
- 三十八、DeCLUTR [2020]
- 三十九、CLEAR [2020]
- 四十、ConSERT [2021]
- 四十一、Sentence-T5 [2021]
- 四十二、ULMFiT [2018]
- 四十三、Scaling Laws for Neural Language Models [2020]
- 四十四、Chinchilla [2022]
- 四十七、GLM-130B [2022]
- 四十八、GPT-NeoX-20B [2022]
- 四十九、Bloom [2022]
- 五十、PaLM [2022] (粗读)
- 五十一、PaLM2 [2023](粗读)
- 五十二、Self-Instruct [2022]
- 句子向量
- 词向量
- 传统CTR 预估模型
- CTR 预估模型
- 一、DSSM [2013]
- 二、FNN [2016]
- 三、PNN [2016]
- 四、DeepCrossing [2016]
- 五、Wide 和 Deep [2016]
- 六、DCN [2017]
- 七、DeepFM [2017]
- 八、NFM [2017]
- 九、AFM [2017]
- 十、xDeepFM [2018]
- 十一、ESMM [2018]
- 十二、DIN [2017]
- 十三、DIEN [2019]
- 十四、DSIN [2019]
- 十五、DICM [2017]
- 十六、DeepMCP [2019]
- 十七、MIMN [2019]
- 十八、DMR [2020]
- 十九、MiNet [2020]
- 二十、DSTN [2019]
- 二十一、BST [2019]
- 二十二、SIM [2020]
- 二十三、ESM2 [2019]
- 二十四、MV-DNN [2015]
- 二十五、CAN [2020]
- 二十六、AutoInt [2018]
- 二十七、Fi-GNN [2019]
- 二十八、FwFM [2018]
- 二十九、FM2 [2021]
- 三十、FiBiNET [2019]
- 三十一、AutoFIS [2020]
- 三十三、AFN [2020]
- 三十四、FGCNN [2019]
- 三十五、AutoCross [2019]
- 三十六、InterHAt [2020]
- 三十七、xDeepInt [2023]
- 三十九、AutoDis [2021]
- 四十、MDE [2020]
- 四十一、NIS [2020]
- 四十二、AutoEmb [2020]
- 四十三、AutoDim [2021]
- 四十四、PEP [2021]
- 四十五、DeepLight [2021]
- 图的表达
- 一、DeepWalk [2014]
- 二、LINE [2015]
- 三、GraRep [2015]
- 四、TADW [2015]
- 五、DNGR [2016]
- 六、Node2Vec [2016]
- 七、WALKLETS [2016]
- 八、SDNE [2016]
- 九、CANE [2017]
- 十、EOE [2017]
- 十一、metapath2vec [2017]
- 十二、GraphGAN [2018]
- 十三、struc2vec [2017]
- 十四、GraphWave [2018]
- 十五、NetMF [2017]
- 十六、NetSMF [2019]
- 十七、PTE [2015]
- 十八、HNE [2015]
- 十九、AANE [2017]
- 二十、LANE [2017]
- 二十一、MVE [2017]
- 二十二、PMNE [2017]
- 二十三、ANRL [2018]
- 二十四、DANE [2018]
- 二十五、HERec [2018]
- 二十六、GATNE [2019]
- 二十七、MNE [2018]
- 二十八、MVN2VEC [2018]
- 二十九、SNE [2018]
- 三十、ProNE [2019]
- Graph Embedding 综述
- 图神经网络
- 一、GNN [2009]
- 二、Spectral Networks 和 Deep Locally Connected Networks [2013]
- 三、Fast Localized Spectral Filtering On Graph [2016]
- 四、GCN [2016]
- 五、神经图指纹 [2015]
- 六、GGS-NN [2016]
- 七、PATCHY-SAN [2016]
- 八、GraphSAGE [2017]
- 九、GAT [2017]
- 十、R-GCN [2017]
- 十一、 AGCN [2018]
- 十二、FastGCN [2018]
- 十三、PinSage [2018]
- 十四、GCMC [2017]
- 十五、JK-Net [2018]
- 十六、PPNP [2018]
- 十七、VRGCN [2017]
- 十八、ClusterGCN [2019]
- 十九、LDS-GNN [2019]
- 二十、DIAL-GNN [2019]
- 二十一、HAN [2019]
- 二十二、HetGNN [2019]
- 二十三、HGT [2020]
- 二十四、GPT-GNN [2020]
- 二十五、Geom-GCN [2020]
- 二十六、Graph Network [2018]
- 二十七、GIN [2019]
- 二十八、MPNN [2017]
- 二十九、UniMP [2020]
- 三十、Correct and Smooth [2020]
- 三十一、LGCN [2018]
- 三十二、DGCNN [2018]
- 三十三、AS-GCN
- 三十四、DGI [2018]
- 三十五、DIFFPOLL [2018]
- 三十六、DCNN [2016]
- 三十七、IN [2016]
- 图神经网络 2
- 图神经网络 3
- 推荐算法(传统方法)
- 一、Tapestry [1992]
- 二、GroupLens [1994]
- 三、ItemBased CF [2001]
- 四、Amazon I-2-I CF [2003]
- 五、Slope One Rating-Based CF [2005]
- 六、Bipartite Network Projection [2007]
- 七、Implicit Feedback CF [2008]
- 八、PMF [2008]
- 九、SVD++ [2008]
- 十、MMMF 扩展 [2008]
- 十一、OCCF [2008]
- 十二、BPR [2009]
- 十三、MF for RS [2009]
- 十四、 Netflix BellKor Solution [2009]
- 推荐算法(神经网络方法 1)
- 一、MIND [2019](用于召回)
- 二、DNN For YouTube [2016]
- 三、Recommending What Video to Watch Next [2019]
- 四、ESAM [2020]
- 五、Facebook Embedding Based Retrieval [2020](用于检索)
- 六、Airbnb Search Ranking [2018]
- 七、MOBIUS [2019](用于召回)
- 八、TDM [2018](用于检索)
- 九、DR [2020](用于检索)
- 十、JTM [2019](用于检索)
- 十一、Pinterest Recommender System [2017]
- 十二、DLRM [2019]
- 十三、Applying Deep Learning To Airbnb Search [2018]
- 十四、Improving Deep Learning For Airbnb Search [2020]
- 十五、HOP-Rec [2018]
- 十六、NCF [2017]
- 十七、NGCF [2019]
- 十八、LightGCN [2020]
- 十九、Sampling-Bias-Corrected Neural Modeling [2019](检索)
- 二十、EGES [2018](Matching 阶段)
- 二十一、SDM [2019](Matching 阶段)
- 二十二、COLD [2020 ] (Pre-Ranking 模型)
- 二十三、ComiRec [2020](https://www.wenjiangs.com/doc/0b4e1736-ac78)
- 二十四、EdgeRec [2020]
- 二十五、DPSR [2020](检索)
- 二十六、PDN [2021](mathcing)
- 二十七、时空周期兴趣学习网络ST-PIL [2021]
- 推荐算法之序列推荐
- 一、FPMC [2010]
- 二、GRU4Rec [2015]
- 三、HRM [2015]
- 四、DREAM [2016]
- 五、Improved GRU4Rec [2016]
- 六、NARM [2017]
- 七、HRNN [2017]
- 八、RRN [2017]
- 九、Caser [2018]
- 十、p-RNN [2016]
- 十一、GRU4Rec Top-k Gains [2018]
- 十二、SASRec [2018]
- 十三、RUM [2018]
- 十四、SHAN [2018]
- 十五、Phased LSTM [2016]
- 十六、Time-LSTM [2017]
- 十七、STAMP [2018]
- 十八、Latent Cross [2018]
- 十九、CSRM [2019]
- 二十、SR-GNN [2019]
- 二十一、GC-SAN [2019]
- 二十二、BERT4Rec [2019]
- 二十三、MCPRN [2019]
- 二十四、RepeatNet [2019]
- 二十五、LINet(2019)
- 二十六、NextItNet [2019]
- 二十七、GCE-GNN [2020]
- 二十八、LESSR [2020]
- 二十九、HyperRec [2020]
- 三十、DHCN [2021]
- 三十一、TiSASRec [2020]
- 推荐算法(综述)
- 多任务学习
- 系统架构
- 实践方法论
- 深度强化学习 1
- 自动代码生成
工具
- CRF
- lightgbm
- xgboost
- scikit-learn
- spark
- numpy
- matplotlib
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
三、 下标存取
1. [ ] 操作符
对于
Index
对象,可以通过[]
来选取数据,它类似于一维ndarray
的索引。下标可以为下列几种下标对象:一个整数下标。此时返回对应的
label
一个整数
slice
。此时返回对应的Index
(根据一维labels
先切片,再组装成Index
)一个
array-like
对象(元素可以为下标或者布尔值)。此时返回对应的Index
。(根据一维labels
先索引,再组装成Index
)由
None
组成的二元组,其中None
相当于新建一个轴。- 如果
None
为第一个元素,则新建的轴为 0 轴; - 如果
None
为第二个元素,则新建的轴为 1 轴。 - 另外
idx[None]
等价于idx[None,:]
,但是idx[None]
返回的是ndarray
。 - 它并没有将
Index
转换成MultiIndex
,只是将Index
内部的数据数组扩充了一个轴
- 如果
Index 的索引只支持整数/整数
slice
/整数序列/布尔序列/整数数组/布尔数组/None 等。对于
Series
对象,可以通过[]
来选取数据,它类似于一维ndarray
的索引。下标可以为下列几种下标对象:一个整数下标/一个属性(属性名为某个
label
)/字典索引(键为label
):返回对应的数值一个整数切片/一个
label
切片:返回对应的Series
。(根据一维Series
先切片,再组装成Series
)。注意:label
切片同时包含了起始label
和终止label
一个整数
array-like
/一个label array-like
/一个布尔ndarray
:返回对应的Series
。(根据一维Series
先索引,再组装成Series
)一个二维整数
array-like
/二维label array-like
:返回对应值组成的二维ndarray
注意:
Series
必须使用布尔数组来索引,不支持布尔序列来索引(抛出KeyError
异常)。
对于
DataFrame
对象,可以通过[]
来选取数据。下标可以为下列几种下标对象:一个属性(属性名为某个
column label
)/字典索引(键为column label
):返回对应的列对应的Series
不可以使用单个整数来索引
一个整数切片/一个
row label
切片:返回对应的行组成的DataFrame
。注意:label
切片同时包含了起始label
和终止label
一个一维
label array-like
:返回对应的列组成的DataFrame
一个布尔数组:返回数组中
True
对应的行组成的DataFrame
。一个布尔
DataFrame
:将该布尔DataFrame
中的False
对应的元素设置为NaN
(布尔DataFrame
中没有出现的值为False
)
Series
对象除了支持使用位置作为下标存取元素之外,还可以使用索引标签来存取元素。这个功能与字典类似,因此它也支持字典的一些方法,如Series.iteritems()
。对于
Series/DataFrame
切片方式的索引,返回的结果与原始对象共享基础数据。对于采用其他方式的索引,返回的结果并不与元素对象共享基础数据。对于
DataFrame
的赋值与列删除:- 将列表或者数组赋值给某个列时,其长度必须跟
DataFrame
的行数匹配。 - 将标量赋值给某个列时,会将标量扩充
- 将
Series
赋值给某个列时,会精确匹配DataFrame
的索引。如果DataFrame
中某个label
在Series
中找不到,则赋值NaN
(空位都将被填上缺失值) - 为不存在的列赋值会创建出一个新列(必须用字典的形式,不能用属性赋值的形式)
- 关键字
del
用于删除列(必须用字典的形式,不能用属性赋值的形式)
- 将列表或者数组赋值给某个列时,其长度必须跟
对于
Series
的赋值与删除:- 对于单个索引或者切片索引,要求右侧数值的长度与左侧相等
- 为不存在的
label
赋值会创建出一个新行(必须用字典的形式,不能用属性赋值的形式) - 关键字
del
用于删除行(必须用字典的形式,不能用属性赋值的形式)
如果
Series/DataFrame
的索引有重复label
,则数据的选取行为将有所不同:- 如果索引对应多个
label
,则Series
返回一个Sereis
,DataFrame
返回一个DataFrame
- 如果索引对应单个
label
,则Series
返回一个标量值,DataFrame
返回一个Series
你可以通过
Index.is_unique
属性得知索引是否有重复的。- 对于
[]
、字典索引、属性索引或者.loc/.ix
存取器,结论如上所述 - 对于
.at
存取器:如果索引对应单个label
,索引结果正常。如果索引对应多个label
,则Series
返回一个一维ndarray
;DataFrame
则抛出异常。
- 如果索引对应多个
对于
Series/DataFrame
,它们可以使用ndarray
的接口。因此可以通过ndarray
的索引规则来索引它们。xxxxxxxxxx
df=pd.DataFrame(...) df[:,0] #使用了 ndarray 的索引方式
2. loc/iloc/ix 存取器
对于
Series
,.loc[]
的下标对象可以为:- 单个
label
,此时返回对应的值 label
的array-like
、label slice
以及布尔array-like
:返回对应值组成的Series
- 单个
对于
DataFrame
,.loc[]
的下标对象是一个元组,其中两个元素分别与DataFrame
的两个轴对应。如果下标不是元组,则该下标对应的是第0轴,第一轴为默认值:
。- 每个轴的下标都支持单个
label
、label array-like
、label slice
、布尔array-like
。 - 若获取的是某一列或者某一行,则返回的是
Series
;若返回的是多行或者多列,则返回的是DataFrame
;如果返回的是某个值,则是普通的标量。
- 每个轴的下标都支持单个
.iloc[]
和.loc[]
类似,但是.iloc[]
使用整数下标,而不是使用label
。- 注意整数切片不包括最后一个值。
.ix[]
存取器综合了.iloc/.loc
:它可以混合使用label
和位置下标- 注意:如果有整数索引,则应该使用
.loc/.iloc
从而避免混淆
- 注意:如果有整数索引,则应该使用
Index
对象不能使用loc/iloc/ix
存取器对于
.loc/.iloc/.ix
:如果某轴的索引为array-like
或者布尔array-like
,则返回的结果与原来的对象不再共享基础数据。如果轴的索引全部都是slice
或者单个整数、单个label
,则返回的结果与原来的对象共享基础数据。
3. at/iat 存取器
.at
和.iat
分别使用label
和整数下标获取单个值。它类似于.loc/.iloc
,但是.at/.iat
的速度更快- 每个索引只能是单个
label
或者单个整数
- 每个索引只能是单个
对于
DataFrame
,.lookup(row_labels, col_labels)
类似于:.loc[row_labels, col_labels]
,但是.lookup
返回的是一维ndarray
。- 要求
row_labels
和col_labels
长度相同。(row_labels[0],col_labels[0]
决定了结果中第一个元素的位置,...(row_labels[i],col_labels[i]
决定了结果中第i+1
个元素的位置,
- 要求
DataFrame.get_value(index, col, takeable=False)
等价于.loc[index, col]
,它返回单个值。而Series.get_value(label, takeable=False)
等价于.loc[label]
,它也返回单个值.get(key[, default])
方法与字典的get()
方法的用法相同。对于DataFrame
,key
为col_label
.head([n=5])
和.tail([n=5])
返回头部/尾部n
行数据
4. query 方法
对于
DataFrame
,当需要根据一定的条件对行进行过滤时,通常可以先创建一个布尔数组,然后使用该数组获取True
对应的行。另一个方案就是采用query(expr, inplace=False, **kwargs)
方法:expr
是个运算表达式字符串,如'label1 >3 and label2<5'
- 表达式中的变量名表示对应的列,可以使用
not/and/or
等关键字进行向量布尔运算。该方法会筛选出那些满足条件的行。 - 如果希望在表达式中使用
Python
变量,则在变量名之前使用@
inplace
是个布尔值,如果为True
,则原地修改。否则返回一份拷贝。
5. 多级索引
对于
.loc/.ix/[]
,其下标可以指定多级索引中,每级索引上的标签。- 多级索引轴对应的下标是一个下标元组,该元组中每个元素与索引中每级索引对应
- 如果下标不是元组,则将其转换成长度为 1 的元组
- 如果元组的长度比索引的层数少,则在其后面补充
slice(None)
6. 整数 label
label
不一定是字符串,也有可能是整数(如RangeIndex/Int64Index
等)。尤其是当label
是自动生成的时候。- 当你的
label
是整数时,面向整数的下标索引总是面向label
的,而不是面向position
的。因此推荐使用.loc
来基于label
索引,使用.iloc
来基于position
索引。
- 当你的
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论