| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 数据挖掘之numpy学习(一) -> 正文阅读 |
|
[人工智能]数据挖掘之numpy学习(一) |
1.1 numpy ????????NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。 ????????num - numerical 数值化的 ????????py - python 1.1.1 numpy优势 ????????Python的一个科学计算库,用于快速处理任意维度的数组。常用于数组和矩阵操作。 ????????ndarray(下文中的array均为ndarray) ????????????????n - 任意个 ????????????????d - dimension 维度 ????????????????array - 数组 ????????与List对比 ????????1)numpy的计算速度和效率比List高效 ????????2)存储方式不同 ????????????????ndarray - 相同类型 - 通用性不强 ????????????????List - 不同类型 - 通用性强 ????????3)ndarray支持向量化运算 ????????4)底层语言 ????????????????C语言,解除了GIL(全局解释器锁),效率高 1.1.2 ndarray的属性 ? ? ? ? np.shape 数组维度的元组 ????????np.ndim 数组维度 ? ? ? ? np.size 数组中的元素数量 ? ? ? ? ? np.itemsize 一个数组元素的长度(字节) ? ? ? ? np.dtype 数组元素的类型(默认为int64) 1.1.3 数组的创建 ????????Import numpy as np ????????X = np.array([],dtype=”float32”(或者dtype=np.float32)) ????????1)生成0和1数组 ????????????????np.zeros(shape=(a,b),dtpye=np.float32) ????????????????np.ones(shape=(a,b),dtpye=np.float32) ????????2)从现有数组生成 ????????????????np.array() ????????????????np.asarray()? 浅拷贝 ????????????????np.copy(array) ?深拷贝,跟随array一起变化,其他两个不变 ????????3)生成固定范围的数组(切片) ????????????????np.linspace(a,b,c) ????????????????????????[a,b] 为区间,元素之间为等距离,c为个数 ????????????????np.arange(a,b,c) ??????????????????.range(a,b,c) ????????????????????????[a,b) 为区间,c是步长 ????????4)生成随机数组 ????????????????均匀分布:np.random.uniform(low=a,high=b,size=None) ????????????????????????a最小值,b最大值,c个数 ????????????????正态分布:np.random.normal(loc=a,scale=b,size=None) ????????????????????????loc:float 此概率的均值 ????????????????????????scale:float 标准差 ????????????????????????size:输出的数量,默认为None 1.1.4 数组的索引、切片 ????????例如:array[a,b:c] ??数组中a行中第b+1列到c+1列的元素 1.1.5 数组的形状修改 ????????array.reshape(shape) ??返回新的array,原始值不变 ????????????????.resize(shape) ??没有返回值,原始值变了 ????????????????.T ??转置 1.1.6 类型修改 ????????array.astype(dtype) 例如:.astype(“int32”) ?序列化到本地 ????????.tostring() ?转换为bytes ????????注意:在jupyter中会由于输出过长无法显示出来 1.1.7数组去重 ????????np.unique(array) ?去掉数组内重复的元素 ????????set(array.flatten()) 1.1.8 ndarray运算 ????????逻辑运算 ????????????????array > a ??数组中大于a的元素变为True,否则为false ????????????????array(array > a) ????只展示大于a的元素 ????????????????array(array > a) = 1 ????大于a的元素都会变为1,其余不变 ????????通用判断函数: ????????????????np.all(布尔值) ?例:np.all(array(a:b,c:d) > 0)???有一个为False就返回false ????????????????np.any(布尔值) ??有一个为True就返回True ????????三元运算符 ????????np.where(array > 0,1,0) ??在数组中大于0的元素置为1,否则置为0 ????????np.logical_and(array>a,array<b) ?都满足为true,否则为false ????????np.logical_or(array>a,array<b) ?满足其一就为true,否则为false ????????复合使用:np.where(np.logical_or(array>a,array<b),1,0) |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 0:42:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |