NumPy与ndarray简介
一、NumPy简介
NumPy的全名为Numeric Python,是一个开源的Python科学计算库,它包括:
- 一个强大的N维数组对象ndrray;
- 比较成熟的(广播)函数库;
- 用于整合C/C++和Fortran代码的工具包;
- 实用的线性代数、傅里叶变换和随机数生成函数
NumPy的优点:
- 对于同样的数值计算任务,使用NumPy要比直接编写Python代码便捷得多;
- NumPy中的数组的存储效率和输入输出性能均远远优于Python中等价的基本数据结构,且其能够提升的性能是与数组中的元素成比例的;
- NumPy的大部分代码都是用C语言写的,其底层算法在设计时就有着优异的性能,这使得NumPy比纯Python代码高效得多
当然,NumPy也有其不足之处,由于NumPy使用内存映射文件以达到最优的数据读写性能,而内存的大小限制了其对TB级大文件的处理;此外,NumPy数组的通用性不及Python提供的list容器。因此,在科学计算之外的领域,NumPy的优势也就不那么明显。
二、数组ndarray
NumPy最重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器,该对象由两部分组成:
- 实际的数据;
- 描述这些数据的元数据;
大部分的数组操作仅仅是修改元数据部分,而不改变其底层的实际数据。数组的维数称为秩,简单来说就是如果你需要获取数组中一个特定元素所需的坐标数,如a是一个2×3×4的矩阵,你索引其中的一个元素必须给定三个坐标a[x,y,z],故它的维数就是3。而轴可以理解为一种对数组空间的分割,以数组a为例,如果我们以0为轴,那么a可以看成是一个由两个元素构成的数组,其中每个元素都是一个3×4的数组。
我们可以直接将数组看作一种新的数据类型,就像list、tuple、dict一样,但数组中所有元素的类型必须是一致的,Python支持的数据类型有整型、浮点型以及复数型,但这些类型不足以满足科学计算的需求,因此NumPy中添加了许多其他的数据类型,如bool、inti、int64、float32、complex64等。同时,它也有许多其特有的属性和方法。
常用ndarray属性:
- dtype 描述数组元素的类型
- shape 以tuple表示的数组形状
- ndim 数组的维度
- size 数组中元素的个数
- itemsize 数组中的元素在内存所占字节数
- T 数组的转置
- flat 返回一个数组的迭代器,对flat赋值将导致整个数组的元素被覆盖
- real/imag 给出复数数组的实部/虚部
- nbytes 数组占用的存储空间
常用ndarray方法:
- reshape(…) 返回一个给定shape的数组的副本
- resize(…) 返回给定shape的数组,原数组shape发生改变
- flatten()/ravel() 返回展平数组,原数组不改变
- astype(dtype) 返回指定元素类型的数组副本
- fill() 将数组元素全部设定为一个标量值
- sum/Prod() 计算所有数组元素的和/积
- mean()/var()/std() 返回数组元素的均值/方差/标准差
- max()/min()/ptp()/median() 返回数组元素的最大值/最小值/取值范围/中位数
- argmax()/argmin() 返回最大值/最小值的索引
- sort() 对数组进行排序,axis指定排序的轴;kind指定排序算法,默认是快速排序
- view()/copy() view创造一个新的数组对象指向同一数据;copy是深复制
- tolist() 将数组完全转为列表,注意与直接使用list(array)的区别
- compress() 返回满足条件的元素构成的数组
NumPy与ndarray简介相关推荐
- Python的numpy库ndarray简介
目录 前言 一.ndarray产生方法 1. np.array() 2.np.arrage() 3.np.linspace() 二.ndarray的属性 总结 前言 numpy库可以用来处理矩阵相关的 ...
- python3 多维数组 NumPy ndarray 简介
目录 基础 重要属性 创建 Converting Python array_like Objects to NumPy Arrays 多维数组 一维 通用数学函数 基础 NumPy 的主要对象是齐次多 ...
- 列表list和numpy的ndarray的copy()函数
在python里面,这两种数据结构只要都是赋值型的给另外一个,两者都是一模一样的保持改变,即一个变化另外一个也要变化. ndarray1=ndarray2 list1=list2 以list列表为例子 ...
- [转载] NumPy 基本操作(ndarray通用函数 / 常用函数)
参考链接: Python中的numpy.cosh ndarray通用函数 / 常用函数 一.ufunc:numpy 模块中对 ndarray 中数据进行快速元素级运算的函数,也可以看做是简单的函数(接 ...
- 第2章【综合练习题】“大润发”、“沃尔玛”、“好德”和“农工商”四个超市都卖苹果、香蕉、橘子和芒果四种水果。使用NumPy的ndarray实现以下功能。
P33综合练习题 1."大润发"."沃尔玛"."好德"和"农工商"四个超市都卖苹果.香蕉.橘子和芒果四种水果.使用Num ...
- 大数据清洗1(numpy之Ndarray对象)
numpy之Ndarray对象 一.了解数据清洗 二.了解numpy库 1. 发展: 2. 安装: 3. 特性 三.NumPy-Ndarray对象 三.数组的属性 1.了解 2.数组的属性 四.Num ...
- 【Python】“大润发”、“沃尔玛”、“好德”和“农工商”四个超市都卖苹果、梨、香蕉、橘子和芒果五种水果。使用NumPy的ndarray实现以下功能。
#(1)创建两个一维数组分别存储超市名称和水果名称 supermarket=np.array(['大润发','沃尔玛','好德','农工商']) fruit=np.array(['苹果','梨','香 ...
- python中ndarray是什么意思_什么是Numpy的ndarray
首先,Numpy的核心是ndarray. 然后,ndarray本质是数组,其不同于一般的数组,或者Python 的list的地方在于它可以有N 维(dimentions),也可简单理解为数组里面嵌套数 ...
- Numpy中ndarray的常见操作
NumPy(Numerical Python)是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要 ...
最新文章
- java加载图片到缓存_Android实现图片异步加载并缓存到本地
- 图神经网络如何对知识图谱建模? | 赠书
- Python的零基础超详细讲解(第一天)-Python简介以及下载
- 爱晚红枫的博客配色----绿野仙踪
- web测试点总结---UI、兼容、功能、交互、安全、性能、接口测试
- 作用域、执行环境、作用域链
- InnoDB的行锁和表锁
- vue给组件传递不同的值
- 【Redis】有序集合的交集与并集
- FBI树-数据结构(二叉树)
- 计算机达人成长之路(8)连载
- mysql数据 lt =_MySql之数据操作
- 跨部门的bug的沟通
- php扩展leonis,LNMP环境部署
- 计算机表格折线图添加图例,如何将Excel表格中插入的折线图中的圆圈设置为方块或三角形...
- java math 三角函数_Java Math类的常用方法,三角函数运算
- 将照片转换为网站的Flash
- 我爱淘冲刺阶段站立会议2每天任务6
- 使用@Vaild或@Validated正则校验以及常用正则
- 计算机网络谢希仁(1)
热门文章
- [附源码]计算机毕业设计JAVA小说网站的设计与实现1
- c--scanf()函数详解
- TensorFlow-神经网络初体验
- wayland学习一 ——client connect到wayland server
- DP方法(动态规划) 寻找最长公共子序列 LCS问题(c++)
- D3D12常用术语与函数
- 打印机十大共性故障解决方案(转东转西)
- print()和println()的区别
- 【WLAN】Android 13 p2p / wifi direct介绍
- Malloc源码解读三——Bins与Arena