首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Python AI 教学 | 主成分分析(PCA)原理及其应用

,对角线是各个特征方差 因为矩阵是一个实对称矩阵,所以具备实对称特征: 1) C不同特征对应特征向量是正交; 2) C特征都是实数,特征向量都是实向量; 3) C可对角化...,且相似对角阵上元素即为矩阵本身特征; 3、根据以上性质,我们可以得到个线性无关非零特征向量e1,e2,......:返回对数组进行排序索引。...语法: numpy.argsort(a, axis=-1, kind='quicksort', order=None) 示例: 5 应用 现有150行,5组特征鸢尾花数据(...1、在进行PCA之前,先将最后一列文本型数据去掉,得到只包含数值型数据矩阵,定义一个删除列操作函数并同样保存在前述pca.py文件中: 2、定义一个函数将数据集中用均值填满,同样地

1.3K30

Python AI 教学 | 主成分分析(PCA)原理及其应用

,但我们可以发现,“浏览量”和“访客数”往往具有较强相关关系,而“下单数”和“成交数”也具有较强相关关系,如果删除其中一个指标,不会丢失太多信息。...1、 首先对特征进行归一化处理: ? 2、求样本集协方差矩阵 ? 所以C为一个n x n矩阵 ?...可以直观地看到,协方差矩阵C是一个对称矩阵,Cij=Cji,对角线是各个特征方差 因为矩阵是一个实对称矩阵,所以具备实对称特征: 1) C不同特征对应特征向量是正交; 2) C特征都是实数...(3)numpy.argsort返回对数组进行排序索引。 语法: numpy.argsort(a, axis=-1, kind='quicksort', order=None) 示例: ?...2、定义一个函数将数据集中用均值填满,同样地,将其保存进pca.py文件里面: ? 3、新建一个py文件,并调用前面构造好pca函数: ? 运行结果(局部): ?

1.8K31

《Python完全自学教程》免费在线连载4.2.1

4.2 字符串 顾名思义,“字符串”就是由一个或多个字符“串”起来—— Python 3.x 中才是真正字符串,Python 2.x 中严格称呼应为“字节串”。不过,现在读者暂不用关注历史。...图4-2-2 输入多行字符串 注意,作为字符串标志,包裹字符串“单引号”、“双引号”和“三引号”,在键盘输入时候必须是英文状态,并且成对出现,否则无法定义字符串对象。...^ SyntaxError: EOL while scanning string literal 在注释(5)之后使用内置函数 type() 查看三个对象类型,返回 str 即表示 Python...>>> sint = str(250) >>> type(sint) >>> sint '250' 以整数为 str() 参数,返回是一个字符串 '250'——也可以理解为将整数...: '1e2' 注意上面的报错信息,对于 int() 函数而言,其参数必须是 0 到 9 数字构成字符串。

53230

Python:Numpy详解

= False, ndmin = 0) NumPy 数据类型  numpy 支持数据类型比 Python 内置类型多很多,基本上可以和 C 语言数据类型对应上,其中部分类型对应为 Python...当前维度相等。当前维度有一个是 1。  若条件不满足,抛出 “ValueError: frames are not aligned” 异常。 ...追加操作会分配整个数组,并把原来数组复制到新数组中。 此外,输入数组维度必须匹配否则将生成ValueError。  append 函数返回始终是一个一维数组。 ...如果类型转换为插入,则它与输入数组不同。 插入没有原地函数返回一个新数组。 此外,如果未提供轴,则输入数组会被展开。 ...函数格式如下:  numpy.sort(a, axis, kind, order) numpy.argsort() numpy.argsort() 函数返回是数组从小到大索引

3.5K00

np.argsort()

在深度学习Mnist案例中遇到了argsort()函数,查了相关资料,把它用法整理如下。...numpy.argsort(a, axis=-1, kind=’quicksort’, order=None) 功能: 将矩阵a按照axis排序,并返回排序后下标 参数: a:输入矩阵, axis:需要排序维度...返回: 输出排序后下标(一维数组)import numpy as npx = np.array([1,4,3,-1,6,9])x.argsort()# array([3, 0, 1, 2, 4,...5], dtype=int64)可以发现,argsort()是将X中元素从小到大排序后,提取对应索引index,然后输出到y 如x[3]=-1最小,x[5]=9最大所以取数组x最小可以写成:x[...x.argsort()[0]]或者用argmin()函数x[x.argmax()] 数组x最大,写成:x[x.argsort()[-1]] # -1代表从后往前反向索引或者用argmax()函数

1K20

NumPy 笔记(超级全!收藏√)

追加操作会分配整个数组,并把原来数组复制到新数组中。 此外,输入数组维度必须匹配否则将生成ValueError。  append 函数返回始终是一个一维数组。 ...当axis无定义时,是横向加成,返回总是为一维数组!当axis有定义时候,分别为0和1时候。当axis有定义时候,分别为0和1时候(列数相同)。...如果类型转换为插入,则它与输入数组不同。 插入没有原地函数返回一个新数组。 此外,如果未提供轴,则输入数组会被展开。 ...按列排序,axis=1 按行排序kind: 默认为’quicksort’(快速排序)order: 如果数组包含字段,则是排序字段  numpy.argsort()  numpy.argsort()...函数返回是数组从小到大索引

4.6K30

【PyCharm】使用wxgl包时报错

kwds) File "E:\Users\24144\anaconda3\lib\site-packages\wxgl\axes.py", line 771, in mesh raise ValueError...("期望参数color是单个颜色表述或类二维数组,或参数cm不应为None") ValueError: 期望参数color是单个颜色表述或类二维数组,或参数cm不应为None Error in atexit...原因分析: plt.mesh(xs, ys, zs, im::-1) func(*args, **kwds) fig.curr_ax.mesh(*args, **kwds) 这三个函数调用发生错误,可以根据自己情况修改函数...解决方法:我直接把原来旧版本 wxgl 包替换了新 wxgl。 主要是因为用了 anaconda ,重新装了 wxgl,结果新版本 wxgl 里面函数与之前代码里面的函数不匹配,从而导致运行报错。...新版本包里API与旧代码用API不一样,导致找不到相关函数。 下面三个连接是我遇到这个问题后查到相关资料,可以参考。

34840

linux内核启动流程分析 - startup_64

283行是设置startup_64函数编译后地址为0x200,这个可以通过以下方式确认: ? 由上可见,startup_64编译后地址就是0x200。...这里再提下343行中1f,它是GNU Assembler中一种语法,表示是汇编语言local label,1f表示向下找第一个名为1label,还有其他写法比如1b,表示向上找第一个名为1label...init_size是大于bzImage文件大小,因为bzImage是一个压缩过内核,如果我们想要执行到真正内核,还要在内存中对bzImage解压缩,init_size指定多余空间就是为了解压缩...bzImage其实包含两部分,分别是setup部分,对应为arch/x86/boot里代码,和compressed部分,对应为arch/x86/boot/compressed里代码。...限于篇幅原因,startup_64函数内容就先讲这么多,有关其更多内容,我们在后面的文章再讲。

2.4K20

numpy.argsort(), numpy.argmax(), numpy.argmin()用法

参考链接: Python中numpy.flipud numpy.argsort(), numpy.argmax(), numpy.argmin()用法   numpy.argsort(a, axis=...=1按行排序  返回:排序后索引  # 一维向量 import numpy as np a = np.array([1, 2, 3]) b = np.argsort(a) print(b) >> Out...=’quicksort’, order=None)   功能:找到指定axis最大,并返回最大索引  参数:a为输入矩阵,axis为寻找最大维度,axis=0按列寻找,axis=1按行寻找 ...返回:最大索引  # 一维向量 import numpy as np a = np.array([1, 2, 3]) b = np.argmax(a) print(b) >> Out: 2 # 二维向量...’, order=None)   功能:找到指定axis最小,并返回最小索引  参数:a为输入矩阵,axis为寻找最小维度,axis=0按列寻找,axis=1按行寻找  返回:最小索引

35200

Python装饰器应用场景代码总结

装饰器应用场景 附加功能 数据清理或添加: 函数参数类型验证 @require_ints 类似请求前拦截 数据格式转换 将函数返回字典改为 JSON/YAML 类似响应后篡改 为函数提供额外数据...mock.patch 函数注册 在任务中心注册一个任务 注册一个带信号处理器函数 不同应用场景下装饰器实现 函数注册表 简单注册表 funcs = [] def register(func...__name__, start, exec_time, result) 带参数装饰器 带参数装饰器相当于一个返回装饰器函数,@deco(a=1)在调用@之前会首先执行deco(a=1)得到一个实际装饰器...,此时为了兼容函数调用,应为返回类提供__call__方法 class Task(object): def __call__(self, *args, **kwargs): return...== ValueError则不处理ValueType子类异常 也可以根据异常属性来判断是否传播或终止 更简单语法 import contextlib @contextlib.contextmanager

89620

【Python】列表 List ③ ( 查询操作 修改操作 | 列表查询操作 List#index | 修改列表指定位置元素 )

一、列表查询操作 1、List#index 函数简介 列表 List 查询功能 , 通过 List#index 函数 实现 , 语法如下 : 列表变量.index(数据元素) 如果列表中 包含 查询数据元素..., 则返回 该 数据元素 索引 , 如果列表中 包含 多个 查询数据元素 , 则返回 第一个 索引 , 如果列表中 没有找到 查询数据元素 , 报 ValueError 错误 ; List#...返回第一个索引。 Raises ValueError if the value is not present....如果不存在则引发ValueError。...: 'Hello' is not in list 二、修改列表指定索引元素 1、语法简介 修改列表指定索引元素 语法 : 列表变量[下标索引] = 新元素 2、代码示例 - 使用正向 / 反向索引修改指定元素

40220
领券