网站首页 > 技术文章 正文
温馨提示:阅读本文只需要3分钟,您就可以掌握概览全数组的操作方法和数组数据编程思想。
Numpy是我们大数据处理、机器学习等的重要基础,我们想要打好基础。上一文中《Python数据处理-萌新手把手,Numpy基础入门,数组学习》,我们基本入门数组学习,今天继续学习分享数组、字节、字符串的操作。这些都是基础的知识,但是都是很重点的。
我们要学会那种思想,面对一个array数组无非都是这些操作,而这个思想很重要,就是编程思想。我们一面对数据问题,都能想到这些操作与运算,就是说明你掌握了基础的编程思想。
我们初学者经常苦恼,那么多的函数我们怎么记得了啊。其实我们不需要记住那些函数的名字,其实只要我们理解掌握数据操作的思维,我们就知道清楚数据可以进行那些方向方面的操作,查找API文档即可,不需要记住函数具体名字。数据的操作思维,就是我们的编程思维。
一 数组操作
通常我们都是对ndarray对象进行操作。主要操作分为:变换(变形)、转置操作、改变维度、链接数组、分割数组、元素增删。都是些基础的操作知识。
1.变换形状:
numpy.reshape(arr, newshape, order')
本质:就是矩阵形状变换,例如3行4列的数组,转换成2行6列,但是行数乘列数的积不能变(即:不管形状怎么变,里面的元素个数不能变)
numpy.ndarray.flat[index]取数组值
这里涉及到一个按行存储还是按照列存储的问题,一般都是按照行存储。
ndarray.flatten(order) :
将数组转换成一维数组,只是副本copy,不改变原来的数据
numpy.ravel(a, order):
也是返回一个一维数组,扁平数组,也只是返回一个copy
2.转置操作
numpy.transpose(arr, axes)
数组转置(与numpy.ndarray.T一样):
转置的数学原理:行列对换
3.改变维度
numpy.broadcast(x,y):
两个同纬度的进行广播操作,将x广播到y,及等同于x+y
numpy.broadcast_to(array, shape, subok):
将array广播到新形数组
numpy.expand_dims(arr, axis)
扩展维度,原数组,新扩展的一维的位置
numpy.squeeze(arr, axis)
降维操作,删除数组中一维的数据
4.拼接数组
numpy.concatenate((a1, a2, ...), axis)
相同shape形状的数组拼接在一起,注意指定的axis拼接
numpy.stack(arrays, axis)
按位置堆加
numpy.hstack(x,y)
水平拼接两个数组,同理vstack是垂直拼接
5.分割数组
numpy.split(ary, indices_or_sections, axis)
按照指定轴分割子数组,可以按段分或者指定位置分
numpy.hsplit(ary,index)
按照垂直第几列开始分割,同理vsplit()
6.增删数组元素
numpy.resize(arr, shape)改变大小尺度维度等,之前的reshape是变形,但是,不会改变元素的个数。而resize会变形并且自动填充原来的数据
numpy.append(arr, values, axis)追加一行或者一列
numpy.insert(arr, obj, values, axis)插入操作
Numpy.delete(arr, obj, axis)删除操作
numpy.unique(arr, return_index, return_inverse, return_counts)查找数组中唯一的元素,一维为去重复,二维及唯一序列,三维及坐标轴等等
二字节操作
我们对字节数据通常是按照位操作,主要是:与(and)、或(or)、非(invert)、左位移、右位移动。也是基础的操作知识。
bitwise_and 按位与操作
bitwise_or 按位或操作
numpy.invert()
按位非操作
numpy.left_shift()numpy.right_shift()
按位左右移动
三总结
本文我们学习了,数组的基本操作,知道数据可以这么操作,而这些操作的思路方向,正是编程思想。
下一文我们将继续面对向量字符串数组进行操作,敬请关注
非常感谢您的细心阅读,喜欢请关注甫义教育今日头条号,我们将创作Python如何进行数据处理、数据分析等原创作品,来实现挖掘数据的价值,谢谢!
猜你喜欢
- 2024-10-12 Excel查找重复次数最多的项目 excell查找重复数据
- 2024-10-12 经典动态规划题——打家劫舍 打家劫舍猜一肖
- 2024-10-12 函数公式的左膀右臂:ROW、COLUMN函数知多少
- 2024-10-12 C|二维数组做函数参数求矩阵乘积 c二维数组作为函数参数
- 2024-10-12 sum() 函数性能堪忧,列表降维有何良方?
- 2024-10-12 【译】Vue 何以对 React“降维打击”?
- 2024-10-12 奇异值分解与主成分分析,一文带你理解Spark分布式降维方法
- 2024-10-12 收下这波 JS 技巧,从此少加班 js怎么做加法
- 2024-10-12 不足 20 行 Python 代码,高效实现 k-means 均值聚类算法
- 2024-10-12 盘ES6、ES7、ES8、ES9、ES10 es6解构赋值
你 发表评论:
欢迎- 最近发表
-
- 在 Spring Boot 项目中使用 activiti
- 开箱即用-activiti流程引擎(active 流程引擎)
- 在springBoot项目中整合使用activiti
- activiti中的网关是干什么的?(activiti包含网关)
- SpringBoot集成工作流Activiti(完整源码和配套文档)
- Activiti工作流介绍及使用(activiti工作流会签)
- SpringBoot集成工作流Activiti(实际项目演示)
- activiti工作流引擎(activiti工作流引擎怎么用)
- 工作流Activiti初体验及在数据库中生成的表
- Activiti工作流浅析(activiti6.0工作流引擎深度解析)
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)