导读:在数据分析当中 , Python用到最多的第三方库就是Numpy 。本文内容是「大数据DT」内容合伙人王皓阅读学习《Python 3智能数据分析快速入门》过后的思考和补充 , 结合这本书一起学习 , 效果更佳 。作者:王皓
来源:华章科技
文章插图
01 ndarray创建与索引在学习Numpy之前我们需要了解一个概念:数组维数 。
在计算机科学中 , 数组数据结构(array data structure) , 简称数组(Array) , 是由相同类型的元素的集合所组成的数据结构 , 分配一块连续的内存来存储 。按数组维数分类可分为:一维数组、二维数组、多维数组(N维数组) 。
文章插图
Numpy是最著名的 Python库之一 , 常用于高性能计算 。Numpy提供了两种基本对象:ndarray和ufunc 。
NumPy作为一个开源的Python科学计算基础库 , 包含:一个强大的N维数组对象ndarray ;广播功能函数 ;整合C/C++/Fortran代码的工具 ;线性代数、傅里叶变换、随机数生成等功能 。NumPy是SciPy、Pandas等数据处理或科学计算库的基础 。
当然这里就有一个问题出现了 , Python已有列表类型 , 为什么需要一个数组对象(类型)?
因为:
- 数组对象可以去掉元素间运算所需的循环 , 使一维向量更像单个数据
- 设置专门的数组对象 , 经过优化 , 可以提升这类应用的运算速度 , 在科学计算中 , 一个维度所有数据的类型往往相同
- 数组对象采用相同的数据类型 , 有助于节省运算和存储空间
1. 创建ndarray对象
1)ndarray数据类型
在《Python 3智能数据分析快速入门》该节内容中 , 作者罗列了15种数据类型 , 其中实数数据类型13种 。这些实数数据类型之间可以互相转换 。
这时有人会问 , 为什么要支持这么多种数据类型?是因为对比Python语法来说仅支持整数、浮点数和复数3种类型 , 但是当科学计算涉及数据较多 , 对存储和性能都有较高要求 , 所以对数据类型进行精细定义 , 有助于NumPy合理使用存储空间并优化性能和程序员对程序规模有合理评估 。
对于15种数据类型在这里笔者将不赘述 , 书上有详细的解释以及案例示范 。
2)ndarray创建
在《Python 3智能数据分析快速入门》该节内容中 , 作者介绍了两种创建ndarray的方法:
- 使用array函数创建数ndarray
- 使用arange函数创建数ndarray
- 从Python中的列表、元组等类型创建ndarray数组
- 使用NumPy中函数创建ndarray数组 , 如:arange, ones, zeros等
- 从字节流(raw bytes)中创建ndarray数组
- 从文件中读取特定格式 , 创建ndarray数组
- np.full(shape,val):根据shape生成一个数组 , 每个元素值都是val
- np.ones_like(a):根据数组a的形状生成一个全1数组
- np.zeros_like(a):根据数组a的形状生成一个全0数组
- np.full_like(a,val):根据数组a的形状生成一个数组 , 每个元素值都是val
- np.concatenate():将两个或多个数组合并成一个新的数组
Numpy提供了强大的生成随机数的功能 , 使用随机数也能创建ndarray 。基本语法格式:numpy.random.×××()。在《Python 3智能数据分析快速入门》该节内容中 , 作者罗列了13个函数及其说明 , 笔者再补充2个函数:
- choice(a[,size,replace,p]):从一维数组a中以概率p抽取元素 , 形成size形状新数组 replace表示是否可以重用元素 , 默认为False
- poisson(lam,size):产生具有泊松分布的数组,lam随机事件发生率,size形状
索引与切片是ndarray使用频率最高的操作 。相较于list , ndarray索引与切片在功能上更加丰富 , 在形式上更多样 。ndarray的高效率在很大程度上需归功于其索引的易用性 。
推荐阅读
- 显示器高刷屏比低刷屏到底强多少?看这一目了然
- 砖红色搭配什么颜色最好看?
- Java分布式锁看这篇就够了
- 看球别忘饮茶保健,日常饮茶有哪些注意事项
- 验孕棒怎样看怀孕?
- 护肤品|别只看推荐 看她们自己用什么护肤品 美妆博主自用8款护肤品
- 香肠晾晒几天可以吃?
- 小米|远程看家神器!一图看懂小米智能家庭屏 10:到手949元
- |女子在湖边钓鱼不成功,直接起身跳舞看呆钓鱼,网友:这是鱼媛?
- 警察看管犯人犯人跑了 古代流放犯人,主要流放到哪些地方?