大白话讲解Numpy中什么是一维、二维、三维数组,以及5种创建方式

news2024/12/21 20:20:34

NumPy中提供了多种创建数组的方式,其中最基本的方式就是通过array()函数创建数组在使用该函数时直接传入列表或元组即可。

通过array()函数分别创建一维数组、二维组和三维数组,那么什么是维度呢?一维、二维、三维有什么区别?

1、什么是维度?

维度可以理解为描述数据的一种 “方向” 或者 “层次”。在数组中,维度的数量决定了我们需要用多少个索引来访问一个元素

2、一维、二维、三维的区别?

(1)一维:一维数组就像是一条直线上排列的一组数据,例如:


a = np.array([1, 2, 3])

这是一个简单的一维数组。它只有一个 “方向”,我们只需要一个索引就能访问其中的元素。比如a[0]就能访问到元素1,a[1]访问元素2,a[2]访问元素3。

(2)二维:二维数组可以想象成一个表格,有行和列,例如:


b = np.array([[1, 2, 3], [4, 5, 6]])

它有两个 “方向”。第一个方向可以理解为行,第二个方向为列。我们需要两个索引来访问其中的一个元素。比如b[0][0]访问的是第一行第一列的元素1,b[1][2]访问的是第二行第三列的元素6。

(3)三维:想象一下你有一个2层的魔方,每层都是一个2x3的网格。这个魔方有以下几个部分:

a.层数(第一维):魔方有2层。

b.行数(第二维):每层有2行。

c.列数(第三维):每行有3个格子。


arr3d = np.array([
    [   # 第一层
        [1, 2, 3],  # 第一行的3个格子
        [4, 5, 6]   # 第二行的3个格子
    ],
     [   # 第二层
        [7, 8, 9],  # 第一行的3个格子
        [10,11,12]  # 第二行的3个格子
    ]
])

3、创建数组的其它方式

(1)通过zeros()函数可以创建元素值都是0的数组,函数的参数是元组,示例代码如下。

输入:


np.zeros((3,3))  #创建数组,并指定数组的维度元组是(3,3)

创建结果:


array([[0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.]])

(2)通过ones()函数可以创建元素值都为1的数组,函数的参数是元组,示例代码如下。

输入:


np.ones((3,3))   #创建数组,并指定数组的维度元组是(3,3)

输出:

array([[1., 1., 1.],
       [1., 1., 1.],
       [1., 1., 1.]])

(3)通过empty()函数创建一个新的数组,该数组只分配了内存空间,它里面填充的元素都是随机的,示例代码如下。

输入:

np.empty((3,3))  #创建数组,并指定数组的维度元组是(3,3)

输出:


array([[1., 1., 1.],
       [1., 1., 1.],
       [1., 1., 1.]])

(4)通过arange()函数创建一个等差数组,它的功能类似于range()函数,只不过arange() 函数返回的结果是一维数组,而不是列表,示例代码如下。

输入:


np.arange(1,20,5)  #创建数组,起始值是1,终止值是20,步长为5

输出:


array([ 1,  6, 11, 16])

从上述结果中可以看出,数组中有4个元素,每个相邻元素之间的差值是5。

(5)通过linspace()函数也可以创建一个等差数组,不同于arange()函数,linspace()函数数组中元素的数量、而不需要指定步长,示例代码如下。

输入:


np.linspace(1,20,5)  #创建数组,起始值是1,终止值是20,数量为5

输出:


array([ 1.  ,  5.75, 10.5 , 15.25, 20.  ])

从上述结果中可以看出,数组中有5个元素,首位元素是1,末位元素是20,每个相邻元素之间的差值是4.75。

此外,在使用以上函数创建数组时,可以通过dtype参数显式地指明元素的类型,示例代码如下。

np.array([1,2,3],dtype=np.float32)
np.ones((3,3),dtype='int32')

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

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

相关文章

【论文研读】U-DiTs:在U型扩散Transformer中引入下采样Token,以更低计算成本超越DiT-XL/2

推荐理由 这篇论文提出了一种新的U型扩散Transformer模型(U-DiT),该模型通过对自注意力机制中的查询、键和值进行下采样,有效减少了计算冗余,同时提高了性能。论文中的研究不仅包含理论分析和实验验证,还展…

深入理解 Linux wc 命令

文章目录 深入理解 Linux wc 命令1. 基本功能2. 常用选项3. 示例3.1 统计文件的行、单词和字符数3.2 仅统计行数3.3 统计多个文件的总和3.4 使用管道统计命令输出的行数 4. 实用案例4.1 日志分析4.2 快速统计代码行数4.3 统计单词频率 5. 注意事项6. 总结 深入理解 Linux wc 命…

SDMTSP:黑翅鸢算法(Black-winged kite algorithm,BKA)求解单仓库多旅行商问题,可以更改数据集和起点(MATLAB代码)

一、黑翅鸢算法BKA 黑翅鸢算法(Black-winged kite algorithm,BKA)由Wang Jun等人于2024年提出,该算法受黑翅鸢的迁徙和掠食行为启发而得。BKA集成了柯西突变策略和领导者策略,增强了算法的全局搜索能力,提…

[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words

python有哪些关键字_keyword_list_列表_reserved_words 回忆上次内容 hello world 不是 从来就有的 来自于 c语言 print、小括号 和 双引号 也来自于 c语言 添加图片注释,不超过 140 字(可选) python 标识符 的 命名规则 依然 完全 学习…

OpenCV 学习记录:首篇

最近在学习机器视觉,希望能通过记录博客的形式来鞭策自己坚持学完,同时也把重要的知识点记录下来供参考学习。 1. OpenCV 介绍与模块组成 什么是 OpenCV? OpenCV (Open Source Computer Vision Library) 是一个开源的计算机视觉和机器学习软…

GTID详解

概念和组成 1,全局事务表示:global transaction identifiers 2, GTID和事务一一对应,并且全局唯一 3,一个GTID在一个服务器上只执行一次 4,mysql 5.6.5开始支持 组成 GTID server_uuid:transaction_id 如&#xf…

[Unity]【图形渲染】【游戏开发】Shader数学基础4-更多矢量运算

在计算机图形学和着色器编程中,矢量运算是核心的数学工具之一。矢量用于描述空间中的位置、方向、速度等各种物理量,并在图形变换、光照计算、纹理映射等方面起着至关重要的作用。本篇文章将详细讲解矢量和标量之间的乘法与除法、矢量的加法与减法、矢量的模与单位矢量、点积…

项目管理工具Maven(一)

Maven的概念 什么是Maven 翻译为“专家”,“内行”Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。什么是理想的项目构建? 高度自动化,跨平台,可重用的组件,标准…

中间件 redis安装

redis官网地址:Redis - The Real-time Data Platform 环境 CentOS Linux release 7.9.2009 (Core) java version "17.0.12" 2024-07-16 LTS 1、通过压缩包安装redis 1,远程下载redis压缩包,或去官网下载:Downloads …

穷举vs暴搜vs深搜vs回溯vs剪枝系列一>找出所有子集的异或总和再求和

题目&#xff1a; 解析&#xff1a; 代码&#xff1a; private int ret;//返回周结果private int path;//枚举一个元素就异或进去public int subsetXORSum(int[] nums) {dfs(nums, 0);return ret;} private void dfs(int[] nums, int pos){ret path;for(int i pos; i <…

C# 从控制台应用程序入门

总目录 前言 从创建并运行第一个控制台应用程序&#xff0c;快速入门C#。 一、新建一个控制台应用程序 控制台应用程序是C# 入门时&#xff0c;学习基础语法的最佳应用程序。 打开VS2022&#xff0c;选择【创建新项目】 搜索【控制台】&#xff0c;选择控制台应用(.NET Framew…

创新实训——前端:配置问题及解决

在配置前端环境中&#xff0c;出现了一些问题&#xff1a; Error: The following dependencies are imported but could not be resolved: element-plus (imported by C:/Users/30753/Desktop/cxsx/Coarse-grained-information-processing-front/src/request.js) element-plus…

【解决方案】三方云仓与各电商平台的电子面单对接

为实现三方云仓与各电商平台的电子面单对接&#xff0c;您需要确保您的WMS&#xff08;仓库管理系统&#xff09;能够通过奇门接口&#xff08;假设这是一个特定的API或中间件服务用于连接不同的系统&#xff09;与各个电商平台进行数据交换。下面是一个简化的解决方案框架&…

属性描述符

什么是属性描述符 1 数据描述符 2 存取描述符 3 获取属性描述符 4 设置属性描述符 4.1 配置writable 4.2 配置configurable 4.3 configurable的特殊性 4.4 配置enumerable 5.同时设置多个属性的属性描述符 6.get和set的用法具体看访问器属性getter和setter帖子。 什…

PostgreSQL技术内幕21:SysLogger日志收集器的工作原理

0.简介 在前面文章中介绍了事务模块用到的事务日志结构和其工作原理&#xff0c;本文将介绍日志的另一个部分&#xff0c;操作日志&#xff0c;主要去描述SysLogger日志的工作原理&#xff0c;流程以及其中关键的实现&#xff1a;日志轮转&#xff0c;刷盘性能问题等&#xff…

Unity3D仿星露谷物语开发6之角色添加动画

1、目的 给角色添加素材中的动画&#xff0c;最终让角色动起来。 2、准备工作 当前的预设体中的Player对象还不够完善&#xff0c;需要删除掉再优化下。此时应当&#xff1a;Hierarchy中的Player对象切断和预设体的关联&#xff0c;同时删除Prefabs中的Player对象。 首先&a…

Go框架比较:goframe、beego、iris和gin

由于工作需要&#xff0c;这些年来也接触了不少的开发框架&#xff0c;Golang的开发框架比较多&#xff0c;不过基本都是Web"框架"为主。这里稍微打了个引号&#xff0c;因为大部分"框架"从设计和功能定位上来讲&#xff0c;充其量都只能算是一个组件&…

CS 144 check4: interoperating in the world

Lectures Note 略 Exercises 执行cmake --build build --target check_webget发现超出12s了。 1、回看check0的代码&#xff0c;似乎不需要关闭写入方向&#xff0c;于是注释掉&#xff08;关键&#xff09; 2、将request的变量类型从string转为string_view&#xff08;顺手…

现代风格VUE3易支付用户控制中心

适用系统 彩虹易支付 技术栈 vitevue3elementuiplusphp 亮点 独立前端代码,扩展开发,不改动系统文件,不影响原版升级 支持功能订制 界面预览

go语言zero框架中启动脚本.sh的编写与配置

在Go语言项目中&#xff0c;编写启动脚本 (.sh 文件) 通常用于自动化启动Go程序、配置环境变量、执行一些初始化任务或处理不同环境下的配置。下面是编写和配置启动脚本的步骤。 ### 1. 基本的 .sh 启动脚本 假设你已经在 Go 中编写了应用程序并编译为二进制文件&#xff0c;启…