、切片[***] 直接索引 先对行进行索引,再进行列索引 -- [*, #] 高维数组索引,从宏观到微观 3.形状修改[**] 1....对象.reshape 不进行行列互换,产生新变量 2.对象.resize 不进行行列互换,对原值进行更改 3.对象.T...最大值下标 argmin -- 最小值下标 4.5 矩阵[*] 1.矩阵和向量 矩阵:理解-二维数组 向量:理解-一维数组 2.加法和标量乘法...加法: 对应位置相加 乘法: 标量和每个位置的元素相乘 3.矩阵向量(矩阵)乘法[*****] [M行, N列]*[N行, L列] = [M行,...,需要通过索引获取 对象[:, :, ""] 5.Series -- 一维数组[**] 1.创建 通过ndarray创建
2.1 重新索引 2.2 丢弃指定轴上的项 2.3 索引、选取和过滤 2.4 用 loc 和 iloc 进行选取 2.5 整数索引 2.6 算术运算和数据对齐 2.7 在算术方法中填充值 2.8 DataFrame...因此,对返回的Series所做的任何就地修改全都会反映到源DataFrame上。通过Series的copy方法即可指定复制列。..._.j] 通过整数位置,同时选取行和列 df.at[label_i, label_j] 通过行和列标签,选取单一的标量 df.iat[i,j] 通过行和列的位置(整数),选取单一的标量 reindex...---- 2.6 算术运算和数据对齐 Pandas 最重要的一个功能是,它可以对不同索引的对象进行算术运算。在将对象相加时,如果存在不同的索引对,则结果的索引就是该索引对的并集。...在本例中,我们的目的是匹配DataFrame的行索引(axis='index' or axis=0)并进行广播。
关于series和dataframe数据结构本身,有大量的方法可用于重构结构信息: rename,可以对标签名重命名,也可以重置index和columns的部分标签列信息,接收标量(用于对标签名重命名)...与[ ]访问类似,loc按标签访问时也是执行范围查询,包含两端结果 at/iat,loc和iloc的特殊形式,不支持切片访问,仅可以用单个标签值或单个索引值进行访问,一般返回标量结果,除非标签值存在重复...是在numpy的基础上实现的,所以numpy的常用数值计算操作在pandas中也适用: 通函数ufunc,即可以像操作标量一样对series或dataframe中的所有元素执行同一操作,这与numpy...广播机制,即当维度或形状不匹配时,会按一定条件广播后计算。由于pandas是带标签的数组,所以在广播过程中会自动按标签匹配进行广播,而非类似numpy那种纯粹按顺序进行广播。...sort_index、sort_values,既适用于series也适用于dataframe,sort_index是对标签列执行排序,如果是dataframe可通过axis参数设置是对行标签还是列标签执行排序
数组使您能够使用类似标量元素之间等效操作的语法在整个数据块上执行数学运算。...: float64 更喜欢loc的原因是因为在使用[]进行索引时,对整数的处理方式不同。...方括号表示用于启用切片操作并允许在 DataFrame 对象上的多个轴上进行索引。...另一个用例是使用布尔 DataFrame 进行索引,比如通过标量比较生成的 DataFrame。...[row, col] 通过行和列标签选择单个标量值 df.iat[row, col] 通过行和列位置(整数)选择单个标量值 reindex方法 通过标签选择行或列 整数索引的陷阱 使用整数索引的 pandas
一、引入Pandas进行数据处理的必要性 NumPy 通过把大量同类数据组织成 ndarray 数组对象,并引入可以支持逐元素操作和广播机制的通用函数,为数值计算提供了许多不可或缺的功能。...但当需要处理更灵活的数据任务(如为数据添加标签、处理缺失值等),或者需要做一些不是对每个元素都进行广播映射的计算(如分组、透视表等)时,NumPy 的限制就非常明显了。 ...建立在 NumPy 数组结构上的 Pandas 库,为常见的各种数据处理任务提供了捷径。Pandas 有三个基本对象:Series、DataFrame 和 Index。...输出结果: a 2 b 8 c 9 d 2 c 9 dtype: int32 (四)通过一个标量创建Series 基于一个标量创建,该标量会重复填充到每个索引上。...对两个 Series 对象运算时,Pandas 会按标签对齐元素,即标签相同的两元素进行计算。 当某一方的标签不存在时,默认以NaN(Not a Number)填充。
数据可以是任何 NumPy 数据类型,标签是序列的索引。...1 b 1 dtype: int64 ''' 获取大于 0 的值: ser_2[ser_2 > 0] ''' a 1 b 1 c 2 dtype: int64 ''' 标量乘法...[df_6['pop'] > 5] state pop unempl year 1 VA 5.1 NaN 2013 2 VA 5.2 6 2014 在DataFrame上执行标量比较: df_6 >...,则将DataFrame对象相加,会产生行和列的索引对的并集,使不重叠的索引为 NaN: np.random.seed(0) df_8 = DataFrame(np.random.rand(9).reshape...在DataFrame的列上匹配Series的索引,并向下广播行: ser_8 = df_10.ix[0] df_11 = df_10 - ser_8 df_11 a b c d 0 0.000000
使用NumPy函数或类似NumPy的运算(如根据布尔型数组进行过滤、标量乘法、应用数学函数等)都会保留索引值的链接: In [21]: obj2[obj2 > 0] Out[21]: d 6 b...因此,对返回的Series所做的任何就地修改全都会反映到源DataFrame上。通过Series的copy方法即可指定复制列。...另一种用法是通过布尔型DataFrame(比如下面这个由标量比较运算得出的)进行索引: In [134]: data < 5 Out[134]: one two three...在将对象相加时,如果存在不同的索引对,则结果的索引就是该索引对的并集。对于有数据库经验的用户,这就像在索引标签上进行自动外连接。...在本例中,我们的目的是匹配DataFrame的行索引(axis='index' or axis=0)并进行广播。
另外,对应元素的英文是element-wise,比如“对应元素的乘法”就是element-wisse product NumPy数组也可以和单一的数值(标量)组合起来进行运算。...此时,需要在NumPy数组的各个元素和标量之间进行运算。这个功能也被称为广播。...]]) A+B array([[ 4, 2], [ 3, 10]]) A*B array([[ 3, 0], [ 0, 24]]) 同样,矩阵也可以通过标量(单一数值)对矩阵进行算术运算,这也是基于广播的功能...print(A) A*10 [[1 2] [3 4]] array([[10, 20], [30, 40]]) 在上面这个例子中,标量10被扩展成了2x2的形状,然后再与矩阵A进行乘法运算。...综上,因为NumPy有广播功能,所以不同形状的数组之间也可以顺利地进行运算。
另外,对应元素的英文是element-wise,比如“对应元素的乘法”就是element-wisse product NumPy数组也可以和单一的数值(标量)组合起来进行运算。...此时,需要在NumPy数组的各个元素和标量之间进行运算。这个功能也被称为广播。...0,6]]) A+B array([[ 4, 2], [ 3, 10]]) A*B array([[ 3, 0], [ 0, 24]]) 同样,矩阵也可以通过标量(单一数值)对矩阵进行算术运算,这也是基于广播的功能...print(A) A*10 [[1 2] [3 4]] array([[10, 20], [30, 40]]) 在上面这个例子中,标量10被扩展成了2x2的形状,然后再与矩阵A进行乘法运算。...综上,因为NumPy有广播功能,所以不同形状的数组之间也可以顺利地进行运算。
换句话说,第k对角线上的元素的行索引和列索引之差等于k。 例如,在一个4×4的方阵中,第0对角线就是主对角线,第1对角线在主对角线上方一格,第-1对角线在主对角线下方一格。...然后,使用这个数组创建了一个DataFrame对象a2。由于没有指定索引和列标签,所以将使用默认的整数索引和列标签。 通过以上代码,您创建了两个DataFrame对象:a1和a2。...其中,a1具有指定的日期索引和列标签,而a2具有默认的整数索引和列标签。这些DataFrame对象包含了随机生成的数据,可用于进行数据分析和处理。 2....使用 .loc 可以通过行和列标签进行索引和修改。...a2 = a.reindex(['a', 'b', 'c', 'd', 'e', 'f']) 这行代码对 DataFrame a 进行重新索引,创建了一个新的 DataFrame a2,行索引包括 'a
可在 CPU 或 GPU 上运算: Tensor 可以存储在 CPU 或 GPU 上,并且可以利用 GPU 进行并行计算,加快运算速度。 自动求导: Tensor 支持自动求导功能,即计算梯度。...通过设置 requires_grad=True,PyTorch 将跟踪对 Tensor 的所有操作,并在需要时计算梯度。...与 NumPy 兼容: PyTorch 的 Tensor 类型与 NumPy 的 ndarray 类型之间可以进行相互转换,方便用户在两者之间进行无缝切换。...中的所有元素求和 sum_tensor = tensor1.sum() # 广播操作:将标量与 Tensor 的每个元素相加 scalar = torch.tensor(2) # 定义一个标量 broadcasted_tensor...(广播):\n", broadcasted_tensor) 运行结果
Name属性,Series的索引可以通过赋值的方式修改。...DataFrame还可以通过类似字典标记的方式或属性的方式获取DataFrame为一个Series。...在将对象相加时,如果存在不同的索引,则结果的索引就是该索引对的并集。自动的数据对齐操作在不重叠的索引处引入了NA值。...在算术方法中填充值 不使用+可以使用add方法进行相加,其中可以添加fill_value参数填充索引不重叠产生的缺省值。...DataFrame和Series之间的运算 默认情况下,DataFrame和Series之间的算术运算会将Series的索引匹配到DataFrame的列然后沿着行一直向下广播: In [17]: df1
分组的一般模式 分组操作在日常生活中使用极其广泛: 依据性别性别分组,统计全国人口寿命寿命的平均值平均值 依据季节季节分组,对每一个季节的温度温度进行组内标准化组内标准化 从上述的例子中不难看出,想要实现分组操作...无法使用自定义的聚合函数 无法直接对结果的列名在聚合前进行自定义命名 可以通过agg函数解决这些问题: 当使用多个聚合函数时,需要用列表的形式把内置聚合函数对应的字符串传入,先前提到的所有字符串都是合法的...,这种标量广播标量广播的技巧在特征工程中是非常常见的。...组过滤作为行过滤的推广,指的是如果对一个组的全体所在行进行统计的结果返回True则会被保留,False则该组会被过滤,最后把所有未被过滤的组其对应的所在行拼接起来作为DataFrame返回。...在groupby对象中,定义了filter方法进行组的筛选,其中自定义函数的输入参数为数据源构成的DataFrame本身,在之前定义的groupby对象中,传入的就是df[['Height', 'Weight
df.at[label_i, label_i] 根据行列的标签位置选择单个标量值 df.iat[i, j] 根据行列的整数位置选择单个标量值 reindex方法 通过标签选择行和列 get_value..., set_value方法 根据行和列的标签设置单个值 灵活运用前9个方法对后续批量数据清洗和处理有很大的帮助。...同样的,也可以在重建索引指定填充值。...') #传入columns在列上计算 利用apply不仅可以返回标量值,也可以返回Series对象。...在sort_index中,可以传入axis参数和ascending参数进行排序,默认按索引升序排序,当为frame1.sort_index(axis=1, ascending=False)表示在列上降序排列
2、DataFrame轴的概念 在DataFrame的处理中经常会遇到轴的概念,这里先给大家一个直观的印象,我们所说的axis=0即表示沿着每一列或行标签\索引值向下执行方法,axis=1即表示沿着每一行或者列标签模向执行对应的方法...DataFrame的方法,即使用ix方法进行索引,不过ix在最新的版本中已经被废弃了,如果要是用标签,最好使用loc方法,如果使用下标,最好使用iloc方法: #data.ix['Colorado',[...DataFrame中的某一列,此时这个标量会广播到DataFrame的每一行上: data = { 'state':['Ohio','Ohio','Ohio','Nevada','Nevada'...使用reindex方法对DataFrame进行重新索引。...对DataFrame进行重新索引,可以重新索引行,列或者两个都修改,如果只传入一个参数,则会从新索引行: frame = pd.DataFrame(np.arange(9).reshape((3,3))
) 输出: [5 7 9] [ 4 10 18] 数组与标量的运算 NumPy也支持数组与标量之间的运算,这同样是元素级别的。...arr = np.array([1, 2, 3]) print(arr * 2) 输出: [2 4 6] 广播机制 广播是NumPy的一个强大特性,它允许对形状不同的数组进行算术运算。...NumPy提供了多种方法来进行矩阵乘法。...广播机制(详细) 广播的原理 广播是指NumPy在算术运算中自动扩展较小的数组,使它们形状相同的过程。广播机制允许我们对不同形状的数组进行算术运算而不需要明确地复制数据。...接着,比较两个数组在每个维度上的大小,如果其中一个数组在某个维度的大小为1,则该数组可以在此维度上进行广播(扩展到与另一个数组相同的大小)。
其计算过程,可以如此: 因为这里的是标量(标量也称为“数量”),因此这种标量与向量相乘称为“数量乘法”。 显然,对于集合,所有的向量都遵循上述数量乘法运算法则。...★和是的两个向量: 是一个标量,它们遵循如下运算法则: 加法运算: 数量乘法运算: ” 从上面的运算不难看出,加法和数量乘法的结果,还都是中的向量,我们称是加法封闭和数量乘法封闭。...(1)创建词向量模型;(2)是待分析的语料库,其中包含两条文本;(3)利用词向量模型对语料库进行训练转换,得到词向量对象。(4)显示所得模型特征,即语料库中都有哪些词语。...第二列数字表示在该文本中,词语的索引,例如“(0, 2)”中的2表示词语“learn”在0所表示的文本中的索引是2。...除了将词语出现次数进行向量化之外,在NLP中,还会实现TF-IDF向量化和哈希向量化,具体内容请参阅《数据准备和特征工程》(电子工业出版社)。
arr = np.array([1, 2, 3]) print(arr * 2) 输出: [2 4 6] 广播机制 广播是NumPy的一个强大特性,它允许对形状不同的数组进行算术运算。...NumPy提供了多种方法来进行矩阵乘法。...广播机制(详细) 广播的原理 广播是指NumPy在算术运算中自动扩展较小的数组,使它们形状相同的过程。广播机制允许我们对不同形状的数组进行算术运算而不需要明确地复制数据。...接着,比较两个数组在每个维度上的大小,如果其中一个数组在某个维度的大小为1,则该数组可以在此维度上进行广播(扩展到与另一个数组相同的大小)。...利用NumPy的广播机制 广播机制是NumPy中的强大功能,允许对形状不同的数组进行算术运算。了解广播机制的工作原理可以帮助我们编写更高效的代码。
代码示例: import pandas as pd obj = pd.Series([1,4,7,8,9]) obj Series 的字符串表现形式为:索引在左边,值在右边。...使用 NumPy 函数或类似 NumPy 的运算(如根据布尔型数组进行过滤、标量乘法、应用数学函数等)都会保留索引值的链接,代码示例: obj2*2 np.exp(obj2) 还可以将 Series...,可以将 DataFrame 的列获取为一个 Series,代码示例: frame2['state'] frame2.state 列可以通过赋值的方式进行修改,赋值方式类似 Series。...(pop,columns=['Nvidia','Intel']) frame3 表5-1列出了DataFrame构造函数所能接受的各种数据 索引对象 pandas 的索引对象负责管理轴标签和其他元数据...不可变可以使 Index 对象在多个数据结构之间安全共享,代码示例: #pd.Index储存所有pandas对象的轴标签 #不可变的ndarray实现有序的可切片集 labels = pd.Index(
不同的索引选择方式 基础知识 属性访问 切片范围 通过标签进行选择 通过位置进行选择 通过可调用对象进行选择 结合位置和基于标签的索引 选择随机样本...默认情况下不包括在计算中。请参阅缺失数据部分。 重新索引允许您在指定轴上更改/添加/删除索引。...Series或DataFrame进行操作将使结果与索引或列标签的并集对齐。...默认情况下不包括在计算中。请参阅缺失数据部分。 重新索引允许您更改/添加/删除指定轴上的索引。...Series或DataFrame进行操作将使结果与索引或列标签的并集对齐。
领取专属 10元无门槛券
手把手带您无忧上云