网站首页 > 技术文章 正文
ndarray对象提供了一些可以便捷地改变数组基础形状的属性和方法,例如,将一个3行4列的二维数组转换成6行2列的二维数组,关于这些属性和方法的具体说明如表9-3所示。
上述这些方法都能够改变数组的形状,但是,reshape()、ravel()方法和T属性返的都是一个已经修改的新数组,并不会修改原始数组。例如:
>>> import numpy as np
>>> arr = np.array([[1, 2, 3], [4, 5, 6]]] #创建一个2行3列的数组
>>> arr
array([[1, 2, 3],
[4,5,6]])
>>> new_arr = arr.reshape((3, 2)) #返回维度为(3,2)的数组
>>> new arr
array([[1, 2],
[3,4],
[5,6]])
>>> arr.ravel() #对数组进行降维处理
array([1, 2, 3, 4, 5, 6])
>>> arr.T #对数组进行轴对换
array([[1, 4],
[2,5],
[3,6]])
>>> arr #查看原始数组是否发生变化
array([[1, 2, 3],
[4,5,6]])
numpy数组制样支持索引和切片操作,具体的用法与序列类型相似。例如:
>>>arr = np.arange(1,9).reshape((4,22)) #生成4行2列的数组
>>> arr
array([[1, 2],
[3,4],
[5,6],
[7,8]])
>>> arr[2] #获取第2行数据
array([5, 6])
>>> arr[1:3] #获取第1~2行数据
array([[3, 4],
[5,6]])
除此之外,numpy中提供了一批具有基本数学运算功能的函数,如表9-4所示。
表9-4 numpy模块的算术运算函数
表9-4中列举的所有运算函数的参数y都是可选的,如果指定了参数y,结果将被保存到y中,比如np.add(a,b,a)表示a+=b;如果没有指定参数y,结果将被保存到一个新创建的数组中,比如c=np.add(a,b)表示c=a+b。
数组无须循环遍历便可以对每个元素执行批量的算术操作,也就是说形状相同的数组之间执行算术运算时,会应用到位置相同的元素上进行计算。例如,数组a=[1,2,3]和数组b=[4,5,6],a*b所得的结果为1*4、2*5和3*6组成的一个新数组。若两个数组的基础形状不同,numpy可能会触发广播机制,该机制需要满足以下任一条件。
猜你喜欢
- 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)
本文暂时没有评论,来添加一个吧(●'◡'●)