Numpy-改变数组维度_数组的拼接

news/2025/1/8 23:12:11/
  • 处理数组的一项重要工 作就是改变数组的维度,包含提高数组的维度和降低数组的维度,还包括数组的转置Numpy
    提供的大量API可以很轻松地完成这些数组的操作。 例如,通过 reshape 方法可以将一维数组变成二维、三维或者多维数组。 通过
    ravel 方法或 flatten 方法可以将多维数组变成一维数组。改变数组的维度还可以直接设置 Numpy 数组的 shape
    属性(元组类型),通过 resize 方法也可以改变数组的维度。

数组的拼接

  • 水平数组组合
    • 通过 hstack 函数可以将 两个或多个数组水平组合 起来形成一个数组
    • 但数组水平组合必须要满足一个条件,就是所有参与水平组合的数组的行数必须相同,否则进行水平组合会抛出异常。
  • 垂直数组拼接

    • 通过 vstack 函数可以将两个或多个数组垂直组合起来形成一个数组
  • 数组的拼接

函数描述
concatenate连接沿现有轴的数组序列
hstack水平堆叠序列中的数组(列方向)
vstack竖直堆叠序列中的数组(行方向)

numpy.concatenate 函数用于沿指定轴连接相同形状的两个或多个数组,格式如下: numpy.concatenate((a1, a2, …), axis) 其中参数 a1, a2, …指相同类型的数组;axis 指沿着它连接数组的轴,默认为 0(0为横向拼接,1为纵向拼接)。

numpy.hstack 它通过水平堆叠来生成数组。 numpy.vstack 它通过垂直堆叠来生成数组

🎯实战:

# coding: utf-8import numpy as npa = np.array([[1, 2, 3], [4, 5, 6]])
print(a)
b = np.array([['a', 'b', 'c'], ['d', 'e', 'f']])
print(b)
print(np.concatenate((a, b)))  # 默认是横面拼接(垂直拼接, 接触面为水平), 等价于vstack
print('垂直方向拼接 相当于vstack')
print(np.concatenate([a, b], axis=0))
print('水平方向拼接 相当于hstack')
print(np.concatenate([a, b], axis=1))# vstack()与hstack()实现二维数组的拼接
a2 = np.array([[1, 2, 3], [4, 5, 6]])
print(a2)
b2 = np.array([['a', 'b', 'c'], ['d', 'e', 'f']])
print(b2)
print('X轴方向接面及垂直堆叠')
print(np.vstack([a, b]))print('y轴方向接面及水平堆叠')
print(np.hstack([a, b]))
"""注意!如果拼接的行和列数目不一致, 则会报错"""# 三维数组的拼接
aa = np.arange(1, 37).reshape(3, 4, 3)
print('数组aa shape:', aa.shape)
bb = np.arange(101, 137).reshape(3, 4, 3)
print('数组bb shape:', bb.shape)
print('concatenate((aa, bb), axis=0)结果:')
print(np.concatenate((aa, bb), axis=0).shape)
print('concatenate((aa, bb), axis=1)结果:')
print(np.concatenate((aa, bb), axis=1).shape)

result:

[[1 2 3][4 5 6]]
[['a' 'b' 'c']['d' 'e' 'f']]
[['1' '2' '3']['4' '5' '6']['a' 'b' 'c']['d' 'e' 'f']]
垂直方向拼接 相当于vstack
[['1' '2' '3']['4' '5' '6']['a' 'b' 'c']['d' 'e' 'f']]
水平方向拼接 相当于hstack
[['1' '2' '3' 'a' 'b' 'c']['4' '5' '6' 'd' 'e' 'f']]
[[1 2 3][4 5 6]]
[['a' 'b' 'c']['d' 'e' 'f']]
X轴方向接面及垂直堆叠
[['1' '2' '3']['4' '5' '6']['a' 'b' 'c']['d' 'e' 'f']]
y轴方向接面及水平堆叠
[['1' '2' '3' 'a' 'b' 'c']['4' '5' '6' 'd' 'e' 'f']]
数组aa shape: (3, 4, 3)
数组bb shape: (3, 4, 3)
concatenate((aa, bb), axis=0)结果:
(6, 4, 3)
concatenate((aa, bb), axis=1)结果:
(3, 8, 3)进程已结束,退出代码0

http://www.ppmy.cn/news/988458.html

相关文章

2.uni-app项目文件

uni-app像是vue与微信小程序的合体,使用 uni-ui项目 模板创建的项目文件如下 目录 1 pages 2 pages.json 3 App.vue 4 index.html 5 static 6 uni_modules 7 manifest.json 8 main.js 9 uni.scss 1 pages 这个是放页面的,默认里面有…

新零售行业如何做会员管理和会员营销

蚓链数字化营销系统全渠道会员管理解决方案,线上线下统一管理,打造私域流量,微信、门店会员全渠道管理,打通私域流量池,实现裂变营销: 开启新零售之路,必然要摒弃原有的管理模式,大…

手写SpringBoot模拟核心流程

首先,SpringBoot是基于的Spring,所以我们要依赖Spring,然后我希望我们模拟出来的SpringBoot也支持Spring MVC的那一套功能,所以也要依赖Spring MVC,包括Tomcat等,所以在SpringBoot模块中要添加以下依赖&…

机器学习深度学习——权重衰减

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——模型选择、欠拟合和过拟合 📚订阅专栏:机器学习&&深度学习 希望文章对你…

UE4 unlua学习笔记

将这三个插件放入Plugins内并重新编译 创建一个BlueprintLibrary,声明一个全局函数 在这里声明路径 点击Create Lua Template 在Content的Script即可生成对应的lua文件打开它! 显示以上lua代码 打印Hello Unlua 创建该UI,就会在创建UI的Con…

Vue 3:玩一下web前端技术(五)

前言 本章内容为VUE语法的简单学习与相关语法讨论。 上一篇文章地址: Vue 3:玩一下web前端技术(四)_Lion King的博客-CSDN博客 下一篇文章地址: Vue 3:玩一下web前端技术(六)_L…

网络安全 Day23-mariadb数据库数据管理和备份

mariadb数据库数据管理和备份 1. 管理数据库中的库2. 管理库中的表3. 管理表中的字段(列)4. 管理表中的数据(行)5. 数据库数据备份与恢复 1. 管理数据库中的库 进入指定数据库: use 数据库名字库的增删改查 创建数据库: create database 数据库名字指定字符及创建数据库: CREA…

了解Unity编辑器 之组件篇Effects(十一)

一、Halo:是一个可用于游戏对象的特效组件,它可以在对象周围添加一个光晕效果 Color属性: 用于设置Halo的颜色。你可以通过选择颜色面板中的颜色来指定光晕的外观。选择适当的颜色可以使光晕与游戏场景中的其他元素相匹配或突出显示。 Size属性: 用于设…