数组形状操作|学习笔记

简介: 快速学习数组形状操作

开发者学堂课程【Python 常用数据科学库:数组形状操作】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/546/detail/7467


数组形状操作

内容简介

一·数组形状操作

二·数组的连接


一·数组形状操作

数组中有一个重要特性,可以分为多个维度,有一维数组,二维数组,三维数组,甚至是更高维度数组。

可以对数组进行形状操作。例如:当我们输入  

import numpy as tang_array=np. arange(10) tang_array  

显示出来的结果就是  

array([0, 1, 2, 3, 4, 5, 6, 7, 9])。

其中 arrange 相当于从0~10,包含左边,但是不包含右边,所以显示出来的有0但无10。

1·一维数组

只有一个数。例如,当我们输入 tang_array. Shape, 显示出来的结果是(10,)。因只有一个数,所以是一维数组。

2·二维数组

当我们对上个数组的 shape 值进行改写,我们输入 tang_array. shape=2,5 时,显示出来的是 array([0,1,2,3,4],[5,6,7,8,9])。 这就是二维数组,二维数组有两个维度。我们刚刚所得到的是一个两行五列的结构。除了上述情况,我们对reshape值进行改变也是可以的。例如,当我们输入 tang_array. reshape(1,10), 我们所得到的就是  array([[0,1,2,3,4,5,6,7,8,9]])。所以,数组有两个属性可以改变,一是直接改变  shape  值,另一个是改为   reshape  再进行改值。此外,数组的值大小不能改变,例如,当我们输入 tang_array. shape=(3,4) 时,就不能显示出结果。因为3*4=12,不等于10,已经改变数组的大小。

当我们想往原数组中新增加一个维度,我们需要在原信息中增加一个叫 np. newaxis 的维度。例如,当我们在上组一维数组的基础上,我们输入 tang_array=np. arrange(np. newaxis,:) ,所显示出来的就是 (1,10),此时该数组就变成了二维数组。若我们输入的是 tang_array=np. arrange(:,np. newaxis), 则显示出的结果就是(10,1)。若我们想继续增加新的维度,则可以按照上述方法一直往上加就可以了。例如,当我们输入 tang_array=np. arrange(:,np. newaxis,np. newaxis), 则所得结果就是(10,1,1)。以此来增加我们所需的维度。

当我们想去除多余的维度时,相当于给数组进行压缩。例如,当我们输入 tang_array=tang_array.squeeze()tang_array.shape 时,结果就由上述(10,1,1)变成了(10,)。因为空的轴对我们来说是无用的,所以压缩的作用就是去除多余的维度。

3·数组的转至

例如,当我们输入 tang_array.transpose(), 所得到的结果就是array([[0,5],[1,6],[2,7],[3,8],[4,9]])。 由原先的两行五列,变成了五行两列,这就是转至,把行和列进行调换。我们也可以把单词 transpose 简化成字母T,所得结果也是一样的。


二·数组的连接

假设我们有两个数组,分别为  

a=np.array([[123,456,134]],

所得结果是

array([[123,456,678],[3214,456,134]])

b=np.array([[1235,3124,432],[43,13,134]])

所得结果为

array([[1235,3124,432],[43,13,134]])。

现有一个

c=np.concatenate((a,b))

,所得结果是

array([[123,456,678],[3214,456,134],[1235,3124,432],[43,13,134]])

用来连接数组a和b。此方法是直接按照样本的维度顺序一行接着一行拼接而成。另一种方法就是指定一个维度进行拼接。例如c=np.concatenate((a,),axis=1),所得出的结果就是 array([[123,456,678,1235,3124,432],[3214,456,134,43,13,134]])。

1·Vstack  和 hstack 的两种操作:

(1)当我们输入 np. vstack((a,b)) 时,所显示出的就是 array([[123,456,678],[3214,456,134],[1235,3124,432],[43,13,134]])。

(2)当我们输入的是 np. hstack((a,b)) 时,所显示出来的就是array([[123,456,678,1235,3124,432],[3214,456,134,43,13,134]])。

例如输入数组 a,所得出的结果就是 array([[123,456,678],[3214,456,134]]),当我们想将数组 a 进行拉平,我们们可以输入 a.flatten(),则显示出来的就是array([123,456,678,3214,456,134]);还有一种方法将数组 a 进行拉平,就是输入 a.ravel(), 则所得出的就是 array([123,456,678,3214,456,134])。上述两种方法都能将数组 a 进行拉平。  

相关文章
|
存储 弹性计算 数据库
阿里云服务器租用收费价格参考,弹性裸金属服务器架构云服务器收费价格表
弹性裸金属服务器架构阿里云服务器有计算型弹性裸金属服务器ebmc7、内存型弹性裸金属服务器ebmr7、AMD计算型弹性裸金属服务器ebmc7a、通用型弹性裸金属服务器ebmg6等实例规格可选,不同实例规格的租用收费价格是不一样的,本文为大家汇总了目前基于弹性裸金属服务器架构下的各个实例规格的阿里云服务器收费标准,以供参考。
阿里云服务器租用收费价格参考,弹性裸金属服务器架构云服务器收费价格表
|
负载均衡 应用服务中间件 nginx
nginx配置和热部署实践
nginx配置和热部署实践
402 0
|
机器学习/深度学习 Rust 算法
Rust机器学习之petgraph
图作为一种重要的数据结构和表示工具在科学和技术中无处不在。因此,许多软件项目会以各种形式用到图。尤其在知识图谱和因果AI领域,图是最基础的表达和研究工具。Python有著名的NetworksX库,便于用户对复杂网络进行创建、操作和学习。Rust有对应的petgraph库——一个用 Rust 开发的通用图形库。本文将用简短易懂的代码向大家介绍petgraph的主要功能特性。
700 0
Rust机器学习之petgraph
|
SQL 存储 关系型数据库
MySQL——授权,角色和审计
MySQL——授权,角色和审计
586 0
|
JavaScript 小程序
【微信小程序】mpvue中格式化日期
1、修改src/utils/index.js文件 mpvue框架中有一个专门格式化日期的文件src/utils/index.js文件 文件内容如下,其中formatDate是我自己添加的方法,是将日期格式化成“YYYY-mm-DD”格式。注意不要忘记在export default {}中添加formatDate,不然外部文件读取不到这个方法
356 0
|
13天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
4天前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI
|
12天前
|
人工智能 自然语言处理 自动驾驶
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知