首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

70个NumPy练习:在Python下一举搞定机器学习矩阵运算

难度:2 问题:将处理两个标量函数maxx在两个数组上运行。 输入: 输出: 答案: 16.如何交换2维numpy数组中的两个列? 难度:2 问题:交换数组arr中的第1列和第2列。...答案: 17.如何交换2维numpy数组中的两个行? 难度:2 问题:在数组arr中交换第1行和第2行。 答案: 18.如何反转2维数组的行? 难度:2 问题:反转二维数组arr的行。...难度:3: 问题:选择没有nan值的iris_2d数组的行。 答案: 36.如何找到numpy数组的两列之间的相关性?...难度:2 问题:查找在iris数据集的第4列花瓣宽度中第一次出现值大于1.0的位置。 答案: 47.如何将所有大于给定值的值替换为给定的cutoff值?...答案: 64.如何从二维数组中减去一维数组,其中一维数组的每个元素都从相应的行中减去? 难度:2 问题:从二维数组a_2d中减去一维数组b_1d,使得每个b_1d项从a_2d的相应行中减去。

20.7K42

【目标跟踪】匈牙利算法

交错路:相邻两条边不同,如非匹配边—匹配边—非匹配)。图中男 4 —女 3 —男 3 —女 2 — 男 2 —女 4属于增广路。 对增广路的匹配边与未匹配边相互交换。...任务1 任务2 任务3 工人甲 1 3 2 工人乙 3 6 5 工人丙 2 8 4 每行减去最小值 任务1 任务2 任务3 工人甲 0 2 1 工人乙 0 3 2 工人丙 0 6 2 每列减去最小值...(第 1 步、第 2 步) X ( i , j )表示第 i 行第 j 列 当选择让 i 去匹配j时 X ( i , j ) = 1 其余 X ( i , j ) = 0 可以看出两者约束方程相同,最优解必定相同...同理列也是一样 推论:减去每一行每一列减去各行各列的最小元素,得到新的矩阵最优解不变。...3.2、独立 0 元素的最多个数等于能覆盖所有的 0 元素(第 3 步) 独立 0 元素指的是位于不同行不同列的零元素.即同一行,同一列虽然可以有多个0,但它们只能有一个是独立的0元素 这个也比较好理解

49310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    分配问题与匈牙利算法

    定理 如果从成本矩阵的任一行或列的所有项中添加或减去数字,那么,所得矩阵的最优分配也是原始矩阵的最优分配。 匈牙利算法 下面的算法将上述定理应用到一个给定的n×n成本矩阵上求出最优分配。...每行的所有数字减去该行的最小项 每列的所有数字减去该列的最小项 使用横线或者竖线穿过矩阵中的所有0,并记录达成此目的所需的最少线路总数 如果线路总数等于矩阵的行数或者列数n,那么一种最优的分配是可能的,...如果总数小于n,执行下一步 找到线路未覆盖的地方的最小项,存在未覆盖的项的行减去该项,然后将该项添加到覆盖的列中 例2 题目同例1 解题方法: 第一步:第一行减去250,第二行减去350...第一步:第一行减去75,第二行减去35,第三行减去90,第四行减去45 ? 第二步:第一列减去0,第二列减去0,第三列减去0,第四列减去5。 ?...因为线路数量小于4,执行步骤5:注意到20是未覆盖区域的最小值,存在未覆盖区域的行每行减去20 ? 然后覆盖的每列加20 ? 跳转到步骤3:划线覆盖所有0 ?

    2.5K20

    数据预处理的 10 个小技能,附 Pandas 实现

    Python与算法社区 第442篇原创,干货满满 值得星标 你好,我是 zhenguo 数据预处理常用的处理步骤,包括找出异常值、处理缺失值、过滤不合适值、去掉重复行、分箱、分组、排名、category...找出异常值常用两种方法: 标准差法:异常值平均值上下1.96个标准差区间以外的值 分位数法:小于 1/4分位数减去 1/4和3/4分位数差的1.5倍,大于3/4减去 1/4和3/4分位数差的1.5倍,都为异常值...1 表示按列,how 默认为 any ,意思是只要有一个 nan 就过滤某行或某列,all 所有都为 nan # axis 0 表示按照行,all 此行所有值都为 nan df.dropna(axis=...0, how='all') 技能4:充填空值 空值一般使用某个统计值填充,如平均数、众数、中位数等,使用函数 fillna: # 使用a列平均数填充列的空值,inplace true表示就地填充 df...技能7:apply 元素级:去掉特殊字符 某列单元格含有特殊字符,如标点符号,使用元素级操作方法 apply 干掉它们: import string exclude = set(string.punctuation

    87510

    【运筹学】匈牙利法 ( 匈牙利法示例 2 | 第一步 : 变换系数矩阵 | 第二步 : 试指派 | 行列打√ | 直线覆盖 | 第二轮试指派 )

    ; 第 1 行减去最小值 5 ; 第 2 行减去最小值 7 ; 第 3 行减去最小值 4 ; 第 4 行减去最小值 3 ; 第 5 行减去最小值 4 ; (c_..., 第 4 列 , 第 5 列 , 没有 0 元素 , 这两列每列都减去最小值 : 第 4 列减去最小值 1 ; 第 5 列减去最小值 2 ; 最终得到行列都有 0 元素的系数矩阵...如果能一眼看出来最好 , 如果不能 , 就需要使用打钩的方法 ; 打 √ 完毕 , 开始讨论覆盖 , 没有 打 √ 的行划线 , 打 √ 的列划线 , 四条线就将所有的 0 元素覆盖了 , 在没有被覆盖的元素中...: 将该行废弃 0 元素列打钩 , 有两个 : 将废弃 0 元素列中对应的 独立 0 元素 行 打钩 : 上述两行对应的 废弃 0 元素的列打钩 : 在上述打钩的列中 , 将独立...0 元素所在行打钩 : 直线覆盖 : 没打勾的行画一条直线 , 打钩的列画一条直线 ; 目的是使用最少的直线覆盖住所有的 0 ; 在没有被覆盖的元素中 , 找最小的元素 1 , 将该最小元素所在的没有覆盖的行

    1.2K00

    【运筹学】指派问题、匈牙利法总结 ( 指派问题 | 克尼格定理 | 匈牙利法 | 行列出现 0 元素 | 试指派 | 打 √ | 直线覆盖 ) ★★★

    中加上或减去一个常数 u_i , 每一列元素 中加上或减去一个常数 v_j , 得到新的效率矩阵 [b_{ij}] , 两个效率矩阵 [a_{ij}] 与 [b_{ij}] 分配问题的...0 元素 : (c_{ij}) 系数矩阵中 , 每行都 减去该行最小元素 ; 每列都出现 0 元素 : 在上述变换的基础上 , 每列元素中 减去该列最小元素 ; 注意必须先变行 ,..., 第 4 列 , 第 5 列 , 没有 0 元素 , 这两列每列都减去最小值 : 第 3 列减去最小值 4 ; 第 4 列减去最小值 2 ; 最终得到行列都有 0 元素的系数矩阵..., 第 4 列 , 第 5 列 , 没有 0 元素 , 这两列每列都减去最小值 : 第 4 列减去最小值 1 ; 第 5 列减去最小值 2 ; 最终得到行列都有 0 元素的系数矩阵...: 将该行废弃 0 元素列打钩 , 有两个 : 将废弃 0 元素列中对应的 独立 0 元素 行 打钩 : 上述两行对应的 废弃 0 元素的列打钩 : 在上述打钩的列中 , 将独立

    1.9K20

    我的机器学习pandas篇SeriesDataFrame

    前言: pandas是在numpy的基础上开发出来的,有两种数据类型Series和DataFrame Series由一组数据(numpy的ndarray)和一组与之相对应的标签构成 DataFrame...表格行的数据结构,包含一组有序的列 Series 何为Series?...DataFrame表格行的数据结构,包含一组有序的列,有行、列索引,可以看做是Series的字典组成 创建DataFrame df01 =DataFrame([['susan','long','meimei...默认为列获取,如果获取行可用pd.loc() df02['apart'] #列增加 df02['address']=['北京','shanghai','shuangzhou','shenzhen'...axis=1) df02.quantile(0.25)#计算样本分位(0到1) df02.median()#中位数 df02.pct_change()#计算百分比变化 协方差和相对系数 直观反应两组数据的相关程度分别为

    1.3K40

    指派问题 —— 匈牙利算法

    这表示这列所代表的任务已指派完,不必再考虑别人了。 只有一个0元素列(行)的0元素加圈,记作◎;然后划去◎ 所在行的0元素,记作Φ。 反复进行(1),(2)两步,直到所有0元素都被圈出和划掉为止。...为此按以下步骤进 行: 对没有◎的行打√号; 对已打√号的行中所有含◎元素的列打√号; 再对打有√号的列中含◎元素的行打√号; 重复(2),(3)直到得不出新的打√号的行、列为止。...对没有打√号的行画一横线,有打√号的列画一纵线,这就得到覆盖所有0元素的最少直线数。 令这直线数为。...一、减法归约 行归约:每行元素减去该行最小元素。 画圈为行最小值: 每行减去最小值: 列归约:每行元素减去该行最小元素。...三、打勾划线 打钩 无 〇 行打钩 √ 无 〇 行有 〇 列打钩 √ √ 列有 〇 行打钩 √ 划线 无 √ 行划线 有 √ 列划线 得到覆盖所有0元素的最少直线数。

    6.3K10

    浙大版《C语言程序设计(第3版)》题目集 练习7-7 矩阵运算

    练习7-7 矩阵运算 给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。...输入格式: 输入第一行给出正整数n(1行,每行给出n个整数,其间以空格分隔。 输出格式: 在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。...for(j=0;j<n;j++) { scanf("%d",&arr[i][j]); sum+=arr[i][j]; //全部数据相加...} } for(i=0;i<n;i++) { sum-=arr[i][n-1]; //减去最后一列 sum-=arr[n-1]...[i]; //减去最后一行 } sum+=arr[n-1][n-1]; //元素arr[n-1][n-1]被减两次,因此加一次 int l=n-1; for(i=0

    2K10

    重中之重的数据清洗该怎么做?

    为了识别异常值,取第25个和第75个百分位的数字,分别减去和添加1.5 x IQR。任何超出此范围的值都被视为异常值。 剔除单值列 无论出于何种目的,包含单个值的列在机器学习领域都是无用的。...用正则表达式处理数据 清理数据最有效的方法之一就是使用正则表达式。也许有一个包含文本字符串的列,如(“1年”、“5年”、“10年”)。...对冗余行进行过滤 如果聚合了来自多个源的数据,那么还可能会遇到数据集部分重叠的风险。假设将过去3个月的销售数据合并,但其中两组记录了一周的销售数据。...如果我们按原样运行数据,那一周的销售额将是双重加权的,这是会导致模型预估的分布和真实分布不同。要解决此问题,请使用drop_duplicates函数。这将删除所有整行相同的行。...为了避免这个问题,使用某种类型的唯一列(如时间戳或用户ID)将确保重复的度量仍然在唯一列中。

    1K10

    pandas | 详解DataFrame中的apply与applymap方法

    比如我们将一个二维数组减去一个一维数组,numpy会先将一位数组拓展到二维之后再进行减法运算。看起来就像是二维数组的每一行分别减去了这一个一维数组一样。...可以理解成我们将减去这一个一维数组的操作广播到了二维数组的每一行或者是每一列当中。 ? 在上面这个例子当中我们创建了一个numpy的数组,然后减去了它的第一行。...我们对比下最后的结果会发现,arr数组当中的每一行都减去了它的第一行。 同样的操作在dataframe也一样可以进行。 ?...我们通过apply操作行或者列,行和列将改变应用到每一个元素。...总结 今天的文章我们主要介绍了pandas当中apply与applymap的使用方法, 这两个方法在我们日常操作DataFrame的数据非常常用,可以说是手术刀级的api。

    3K20

    设计HBase RowKey需要注意的二三事

    在HBase中,定位一条数据(即一个Cell)需要4个维度的限定:行键(RowKey)、列族(Column Family)、列限定符(Column Qualifier)、时间戳(Timestamp)。...打散RowKey HBase中的行是按照RowKey字典序排序的。 这对Scan操作非常友好,因为RowKey相近的行总是存储在相近的位置,顺序读的效率比随机读要高。...如果用一个大值减去时间(比如用99999999减去yyyyMMdd,或者Long.MAX_VALUE减去时间戳),最新的数据就可以排在前面了。 2....设计短RowKey有以下两方面考虑: 在HBase的底层存储HFile中,RowKey是KeyValue结构中的一个域。...记录的详细数据则存储在列f:data中。根据查询逻辑,我们设计的RowKey格式如下: 9~79809782~05~0008839540 长度正好是24B。

    1.5K51

    对比Excel学PBI:减去上一行,DAX公式原来是这么想出来的!|DAX实战

    小勤:DAX里怎么实现下图Excel里减去上一行的效果?...大海:Excel里减去上一行的公式比较简单,只要判断一下当前行的名字是否等于上一行的,如果等于,即可以用当前行的数量减去上一行的,否则等于当前行的数量。 Why?...但DAX里只有表的概念,需要通过上行索引或上下文的特性才能支持对数据进行行的定位和筛选,而不像Excel里可以直接通过动态引用到“上一行”(关于窗口函数的使用另文再讲)。...因此,在DAX里这个问题的处理就会相对复杂,所以,你得想办法通过条件筛选或索引定位的方式得到“上一行”的数据。 小勤:那要怎么筛选呢?...1、筛选出名字等于当前行(如 甲)且日期小于当前行(如 7月19日)的数据: 2、日期降序排列后第一行,即日期最大的行 3、选择“数量”列的内容 大海:对的,在DAX里其实就是遵循这样的思路对数据进行“

    28210

    R tips:细究FactoMineR的z-score标准化细节

    函数源码的开头就是先定义了三个函数,其中前两个就是用于计算列均值和标准差的,特别是标准差的计算,为了保证z-score标准化不出现NA值,FactoMineR::PCA的处理其实非常聪明(见后述)。...后面紧接着的一条命令就是将输入数据X先转换为数据框,这里说一下X其实就是表达矩阵,但是不同于常规的"列是样本行是基因"的表达矩阵,它其实是"行是样本列是基因"(重要),所以进行PCA分析时,往往需要转置...row.w # row.w <- row.w/sum(row.w) # if (is.null(col.w)) # col.w <- rep(1, ncol(X)) row.w和col.w是对行与列所分配的权重...另外这里还将row.w转换为了比例值(除以所有权重和),比如有100个样本,那么默认情况下每个样本的权重就是1/100。 减去均值 接下来就是计算每一个基因的均值,然后每个基因各自减去自己的均值。...矩阵乘法代表表达矩阵的每一列都是和这个行权重的线性组合,其结果就是一个均值。 后面的代码就是将原来的表达矩阵减去这个均值向量即可,之所以要转置是因为R中的矩阵默认是进行列方向的自动对齐。

    1.6K20

    【运筹学】匈牙利法 ( 匈牙利法示例 )

    ; 第 1 行减去最小值 2 ; 第 2 行减去最小值 4 ; 第 3 行减去最小值 9 ; 第 4 行减去最小值 7 ; (c_{ij}') =\begin{bmatrix...& 2 & \\\\ & 6 & 0 & 10 & 11 & \\\\ & 0 & 5 & 7 & 4 & \\\\ & 0 & 1 & 4 & 2 & \\ \end{bmatrix} 此时发现有两列..., 第 4 列 , 第 5 列 , 没有 0 元素 , 这两列每列都减去最小值 : 第 3 列减去最小值 4 ; 第 4 列减去最小值 2 ; 最终得到行列都有 0 元素的系数矩阵...1 列中的其它 0 元素标记为 废弃 0 元素 ( 绿色矩形框 ); 第 1 行和第 4 行都有多个 0 元素 ; 然后从列里面找独立 0 元素 , 第 1 列 和 第...2 列都已经找到了 0 元素 , 这里看 第 3 列 和 第 4 列 ; 第 3 列有 独立 0 元素 ( 红色矩形框 ) ; 位于第 4 行 , 将第 4 行的其它 0

    85800

    运筹学教学 | 十分钟教你求解分配问题(assignment problem)

    Step 1: 行归约 找出每行的最小元素,分别从每行中减去这个最小元素; 矩阵变换如下: ? Step 2 : 列归约 找出每列的最小元素,分别从每列中减去这个最小元素 ?...下面我们针对这两种情况举例说明: 01 i.出现零元素的闭合回路(有多于两行或两列存在两个以上的零元素。) 对于矩阵: ? 我们所有变化后,得到矩阵: ?...图的第一行的一二列零元素和第四行的一二列零元素构成回路 这里我们的处理方法是: 先对cost方阵做一个备份(因为会出现多解),然后我们可以顺着回路的走向,对间隔的零元素标记成1,然后对标记成1的零元素所有的行列划一条直线...具体操作如下: ① 对没有标记为1的零元素所在的行打√; ②在已打“√”的行中,对标记为2的零元素所在列打√ ③ 在已打“√”的列中,对标记为1的零元素所在行打“√” ④重复②和③,直到再不能找到可以打...⑤对没有打“√”的行画一横线,对打“√”的列画一垂线,这样就得到了覆盖所有零元素的最少直线数目的直线集合。 对矩阵进行操作: ① 打勾 ? ② 划线 ?

    16.7K123
    领券