numpy学习|numpy.concatenate()函数基础

【1】引言

在前序学习过程中,已经深刻体会到要想画图,必须有数据做好支撑,数据的处理往往需要调用numpy模块,因此,对numpy模块的深入学习同样具有至关重要的意义。

今天就一起学习一下numpy模块下的concatenate()函数。

【2】官网教程

首先可以点击下方链接直达官网:

https://numpy.org/doc/stable/reference/generated/numpy.concatenate.html#numpy.concatenate

这里给出了很多参数:

numpy.concatenate((a1, a2, ...), axis=0, out=None, dtype=None, casting="same_kind")

numpy.concatenate():将数据按照同一轴向进行组合

(a1, a2, ...):即将被处理的数据,数据们应在格式上保持一致

axis:数据分布的轴,如果不说,会被统一平面化处理。可以大致理解为,如果给了10个数,就默认它们都在X轴上;

out:输出数据的存储位置。输出数据的类型会与数据被处理前一致

dtype:数据输出的类型,不可以和out同时使用

casting:控制可能发生哪种类型的数据强制转换。默认为‘ same_kind ’。

【3】代码解读

首先是引入计算模块numpy,然后定义了两个不同的数组,之后对数组进行组合。

下述内容先给出了加了注释的代码,还增加了输出内容以辅助深入理解axis参数值的意义。

import numpy as np #引入计算模块
a = np.array([[1, 2], [3, 4]]) #定义数组a
b = np.array([[5, 6]]) #定义数组b
c=np.concatenate((a, b), axis=0) #组合数组a和b
d=np.concatenate((a, b.T), axis=1) #组合数组a和b的转置数组
e=np.concatenate((a, b), axis=None) #组合数组a和b
print('a=\n',a) #输出a
print('b=\n',b) #输出b
print('c=np.concatenate((a, b), axis=0)=\n',c) #输出组合数组a和b
print('d=np.concatenate((a, b.T), axis=1)=\n',d) #输出组合数组a和b的转置数组
print('e=np.concatenate((a, b), axis=None)=\n',e) #输出组合数组a和b的展开数组

 运行代码后,获得的输出结果为:

a=
 [[1 2]
 [3 4]]
b=
 [[5 6]]
c=np.concatenate((a, b), axis=0)=
 [[1 2]
 [3 4]
 [5 6]]
d=np.concatenate((a, b.T), axis=1)=
 [[1 2 5]
 [3 4 6]]
e=np.concatenate((a, b), axis=None)=
 [1 2 3 4 5 6]

可见,在数组a两行两列,数组b一行两列的基础上,使用concatenate()函数对数组进行组合:

当axis=0时,输出结果是三行两列,也就是保持列不变,行数直接相加;

当axis=1时,输出结果是两行三列,因为数组b转置为两行一列,所以结果其实是是保持行数不变,列数直接相加;

当axis=None时,所有数据被展开到行,也就是“平面化处理”,输出结果是一行六列。

综上所述,axis=0,是在行上进行合并;axis=1,是在列上进行合并;axis=None,所有数据展开到行,之后再一同合并到行上。

基于此分析,进行代码测试。

【4】代码测试

新增三行两列数组f,进行组合测试:

f=np.array([[7,8],[9,10],[11,12]]) #定义数组f
g=np.concatenate((a, f), axis=0) #组合数组a和b
h=np.concatenate((a, f.T), axis=1) #组合数组a和b
i=np.concatenate((a, f), axis=None) #组合数组a和b的展开数组
print('np.concatenate((a, f), axis=0)=\n',g) #输出组合数组a和f
print('np.concatenate((a, f.T), axis=1)=\n',h) #输出组合数组a和f的转置数组
print('np.concatenate((a, f), axis=None)=\n',i) #输出组合数组a和f的展开数组

 运行代码后的输出结果为:

g=np.concatenate((a, f), axis=0)=
 [[ 1  2]
 [ 3  4]
 [ 7  8]
 [ 9 10]
 [11 12]]
h=np.concatenate((a, f.T), axis=1)=
 [[ 1  2  7  9 11]
 [ 3  4  8 10 12]]
i=np.concatenate((a, f), axis=None)=
 [ 1  2  3  4  7  8  9 10 11 12]

可见:

axis=0时,对行数进行了相加;

axis=1时,对列数进行了相加;

axis=None时,所有数据展开到行后直接组合。

【5】总结

掌握了numpy.concatenate()函数组合数组的基本操作技巧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/19765.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

性能测试

浅谈性能瓶颈之Mysql慢查询 1.开启测试环境的mysql数据库慢查询日志,然后在日志文件里自动记录这些慢查询,以及not using index的查询。数据库执行下面几个命令: set global slow_query_logon /*开启慢查询日志*/set log_queries_not_using_…

【AI+教育】一些记录@2024.11.11

《清华发布工具学习框架,让ChatGPT操控地图、股票查询,贾维斯已来?》 清华发布工具学习框架,让ChatGPT操控地图、股票查询,贾维斯已来?工具学习,清华天团让 ChatGPT 拿起专业工具https://mp.we…

图数据库 | 7、图数据库三大组件之一 之 图存储(下)

在图数据库中有三大组件——图计算、图存储以及图查询语言。上一个篇文章,老夫聊到了图存储,重点讲的是它的基础概念以及图存储引擎的架构设计中的一对重要概念——非原生图与原生图,接下来我们就聊聊关于图存储数据结构与构图的那些事儿吧。…

生产环境部署Nginx服务器双机热备部署-keepalived(多种模式教程)

前言:今天演示下生产环境keepalived的部署方式,安装模式有很多,比如说主备模型和双主模型,主备分:抢占模式 和 非抢占模式。这里我会一一展开说具体怎么配置 一、双节点均部署Nginx: 第一步:上…

陶哲轩:计算机通用方法,往往比深奥的纯数学更能解决问题

刚刚,著名数学家陶哲轩在个人社交平台更新的几篇帖子,引起大家广泛的共鸣。 陶哲轩用浅显易懂的语言表达了自己对数学的理解与思考心得。 文中谈到了一个关于「度」的问题,陶哲轩表示在设计系统时,缺乏或者过度的数学分析可能都…

NewStarCTF2024-Week3-Web-WP

目录 1、Include Me 2、blindsql1 3、臭皮踩踩背 4、臭皮的计算机 5、这“照片”是你吗 1、Include Me 使用 data 协议,结合 base64 编码绕过 payload: ?iknow1&medata://text/plain;base64,PD89c3lzdGVtKCJ0YWMgL2ZsYWciKTs 拿到 flag&#…

java版询价采购系统 招投标询价竞标投标系统 招投标公告系统源码

在信息化飞速发展的今天,电子招投标采购系统已成为企业运营中的重要一环。这一系统不仅优化了传统的招投标流程,还为企业带来了诸多显著的价值。 首先,电子招投标采购系统极大地提高了工作效率。传统招投标过程中,企业需要耗费大…

小林Coding—Java「二、Java基础篇」

󠀲󠀲二 Java基础面试篇 数据类型 引用类型 类:Class接口:Interface数组:Array枚举:Enum自动装箱:int -> Integer 自动拆箱:Integer -> int // 下面代码会先自动拆箱将sum转为…

GBDT 算法

GBDT 梯度决策提升树是将一些弱分类决策树的结果加在一起,每一棵决策树对前一颗觉得树残差进行优化,从而使得总体的损失值达到最小。 GBDT 公式 Fm-1: 上一棵树的结果 α \alpha α: 学习率 hm(x): 当前树,通过训练调整结果,降低…

java~Lambda表达式

目录 Lambda和匿名内部类 语法 函数式接口 无返回值(无参、有参) 有返回值(无参、有参) 语法精简 四个基本的函数式接口 方法引用 实例方法引用 静态方法引用 特殊方法引用 构造方法引用 数组引用 集合 List、Set …

PyQt5信号与槽二

窗口数据传递 在开发程序时,如果这个程序只有一个窗口,则应该关心这个窗口里面的各个控件之间是如何传递数据的;如果这个程序有多个窗口,那么还应该关心不同的窗口之间是如何传递数据的。对于多窗口的情况,一般有两种…

【java】多态

一、概念 多态是同一个行为具有多个不同表现形式或形态的能力。 多态就是同一个接口,使用不同的实例而执行不同操作。 同一个事件发生在不同的对象上会产生不同的结果。 比如: public class Test {public static void main(String[] args) {Person xn…

使用Holoviews创建复杂的可视化布局

目录 一、Holoviews简介 二、安装Holoviews 三、Holoviews的基本概念 元素(Elements): 容器(Containers): 映射(Mappings): 四、基本用法 创建元素: …

Java2.1——异常

异常基本概念 一:程序出错 分类 : 编辑错误,逻辑错误,运行时错误 目的: 异常处理让程序出错了还运行,避免中止运行 二: 运行时错误 当出现编译时无法预料的问题,将运行错误报告…

2025年假期python,工作日python脚本求出 输出日期内容

# coding:utf-8 import datetime# 假设已知的节假日和调休安排 holidays [datetime.date(2025, 1, 1), # 元旦datetime.date(2025, 1, 28), # 春节datetime.date(2025, 1, 29), # 春节datetime.date(2025, 1, 30), # 春节datetime.date(2025, 1, 31), # 春节datetime.dat…

1TB! 台湾最新倾斜摄影3DTiles数据分享

之前的文章分享了546GB香港倾斜摄影3DTiles数据,主要是验证倾斜模型3DTiles转换工具的生产效率和数据显示效率,结果对比可以看出无论是数据生产速度以及成果数据显示效率上,都优于其他两种技术路线。最近使用倾斜模型3DTiles工具生产了台湾地…

ssm136公司项目管理系统设计与实现+jsp(论文+源码)_kaic

毕 业 设 计(论 文) 题目:公司项目管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本T公司项目管理系…

【Sql Server】sql server 2019设置远程访问,外网服务器需要设置好安全组入方向规则

大家好,我是全栈小5,欢迎来到《小5讲堂》。 这是《Sql Server》系列文章,每篇文章将以博主理解的角度展开讲解。 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 前言1、无法链接…

小车综合玩法--2.超声波避障

一、实验准备 通过超声波模块与小车结合,实现小车超声波避障。小车接线已安装,且安装正确 二、实验原理 通过超声波我们获取小车与障碍物的距离。当检测到小车与障碍物的距离小于我们的设置的距离时,小车左旋避开障碍物。 三、实验源码 #!…

「二」体验HarmonyOS端云一体化开发模板——创建端云一体化工程

关于作者 白晓明 宁夏图尔科技有限公司董事长兼CEO、坚果派联合创始人 华为HDE、润和软件HiHope社区专家、鸿蒙KOL、仓颉KOL 华为开发者学堂/51CTO学堂/CSDN学堂认证讲师 开放原子开源基金会2023开源贡献之星 「目录」 「一」HarmonyOS端云一体化概要 「二」体验HarmonyOS端云一…