网站首页 > 精选教程 正文
1 numpy基础之多维数组获取和修改元素
在多维数组中,数组有多少维,就表示有多少轴,通过索引下标获取对应轴索引的元素,如果下标包含全部轴,则返回变量,否则返回低一轴的数组。
1.1 多维数组获取元素
描述
在多维数组中,只使用部分轴的索引,则返回对象是维度低一轴的ndarray。使用全部轴的索引,则返回标量。
多维数组,有多个轴,最外层为0轴,索引下标从0轴开始。
[m,n,o]表示0轴上索引为m,1轴上索引为n,2轴上索引为o的下标。
[m,n,o]索引下标等价于m[o]索引下标。
示例
>>> import numpy as np
# 创建二维数组
>>> ar2d=np.array([[10,11,12],[13,14,15]])
>>> ar2d
array([[10, 11, 12],
[13, 14, 15]])
# 二维数组,单索引获取低一维度的一维数组
# 二维数组,有2个轴,轴0(axis0)为行,轴1(axis1)为列
# 单索引获取的是轴0上的数据,其索引对应的是轴0上的索引
# [n]获取axis0轴上索引为n的一维数组
>>> ar2d[0]
array([10, 11, 12])
>>> ar2d[1]
array([13, 14, 15])
# 二维数组,双索引获取轴0和轴1指定索引的单个元素
# [m][n]获取在轴0的索引为m,轴1的索引为n对应的元素
>>> ar2d[0][1]
11
# [m,n]同[m][n]
# 获取在轴0的索引为m,轴1的索引为n对应的元素
>>> ar2d[0,1]
11
# 创建三维数组
>>> ar3d=np.array([[[11,12,13],[14,15,16]],[[21,22,23],[24,25,26]]])
# 三维数组有三个轴,axis0,axis1,axis2
>>> ar3d
array([[[11, 12, 13],
[14, 15, 16]],
[[21, 22, 23],
[24, 25, 26]]])
# [n]获取0轴上索引为n的二维数组
>>> ar3d[0]
array([[11, 12, 13],
[14, 15, 16]])
# [m][n]获取0轴上索引为m,1轴上索引为n的一维数组
>>> ar3d[0][1]
array([14, 15, 16])
# [m][n][o]获取0轴上索引为m,1轴上索引为n,2轴上索引为o对应的元素
>>> ar3d[0][1][2]
16
# [m,n]同[m][n]
>>> ar3d[0,1]
array([14, 15, 16])
# [m,n,o]同[m][n][o]
>>> ar3d[0,1,2]
16
1.2 多维数组修改元素
描述
多维数组,有多个轴,最外层为0轴,索引下标从0轴开始。
[m,n,o]表示0轴上索引为m,1轴上索引为n,2轴上索引为o的下标。
多维数组非标量元素可以通过标量赋值和数组赋值。
通过标量赋值时,指定索引的元素被赋值为相同标量值。
通过数组赋值时,指定索引的元素与赋值数组需有相同的形状。
示例
>>> import numpy as np
# 创建二维数组
>>> ar2d=np.array([[10,11,12],[13,14,15]])
>>> ar2d
array([[10, 11, 12],
[13, 14, 15]])
>>> vals_2d1=ar2d[1].copy()
>>> vals_2d1
array([13, 14, 15])
# 通过标量赋值
>>> ar2d[1]=22 # 轴0上索引为1的一维数组被赋值为22
>>> ar2d
array([[10, 11, 12],
[22, 22, 22]])
# 通过数组赋值
>>> ar2d[1]=vals_2d1 # 轴0上索引为1的数组被赋值为vals_2d1数组
>>> ar2d
array([[10, 11, 12],
[13, 14, 15]])
# 创建三维数组
>>> ar3d=np.array([[[11,12,13],[14,15,16]],[[21,22,23],[24,25,26]]])
# 三维数组有三个轴,axis0,axis1,axis2
>>> ar3d
array([[[11, 12, 13],
[14, 15, 16]],
[[21, 22, 23],
[24, 25, 26]]])
>>> vals_3d10=ar3d[1,0].copy()
>>> vals_3d10
array([21, 22, 23])
# 通过标量赋值
# 0轴上索引为1,1轴上索引为0的数组被赋值为22
>>> ar3d[1,0]=68
>>> ar3d
array([[[11, 12, 13],
[14, 15, 16]],
[[68, 68, 68],
[24, 25, 26]]])
# 通过数组赋值
# 0轴上索引为1,1轴上索引为0的数组被赋值为vals_3d10数组
>>> ar3d[1,0]=vals_3d10
>>> ar3d
array([[[11, 12, 13],
[14, 15, 16]],
[[21, 22, 23],
[24, 25, 26]]])
2 END
本文首发微信公众号:梯阅线条,
更多内容参考python知识分享或软件测试开发目录。
猜你喜欢
- 2024-11-16 面向JVM编译-类实例、数组的创建和使用
- 2024-11-16 来,一起聊聊Excel中的数组(excel数组公式有哪些)
- 2024-11-16 数组的维数及数组公式的讲解(数组维的大小)
- 2024-11-16 C语言中数组的类型和使用(c语言中数组的概念及作用)
- 2024-11-16 C# - 多维与交错数组 036(交错数组和多维数组有何区别?)
- 2024-11-16 Numpy第6练:如何操控数组的维度与形状?干货满满!
- 2024-11-16 NumPy之:多维数组中的线性代数(numpy 多维数组)
- 2024-11-16 S7-1200 数组数据类型(ARRAY)(s71200plc数据类型)
- 2024-11-16 JAVA中如何调用matlab并返回运算结果?
- 2024-11-16 Java基础03(java基础案例教程第二版)
你 发表评论:
欢迎- 04-11Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- 04-11Java中你知道几种从字符串中找指定的字符的数量
- 04-11探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- 04-11Python字符串详解与示例(python字符串的常见操作)
- 04-11java正则-取出指定字符串之间的内容
- 04-11String s1 = new String("abc");这句话创建了几个字符串对象?
- 04-11java判断字符串中是否包含某个字符
- 04-11关于java开发中正确的发牌逻辑编写规范
- 最近发表
-
- Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- Java中你知道几种从字符串中找指定的字符的数量
- 探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- Python字符串详解与示例(python字符串的常见操作)
- java正则-取出指定字符串之间的内容
- String s1 = new String("abc");这句话创建了几个字符串对象?
- java判断字符串中是否包含某个字符
- 关于java开发中正确的发牌逻辑编写规范
- windows、linux如何后台运行jar(并且显示进程名)
- 腾讯大佬私人收藏,GitHub上最受欢迎的100个JAVA库,值得学习
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)