numpy 多维矩阵及切片存取

本文详细解析了形状为(4,3,3,2)的4维矩阵,并通过实例展示了如何利用numpy进行多维数组的切片操作,包括选取特定子矩阵的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于shape是(4,3,3,2)的4维矩阵,其意思是在(4,3)的矩阵中,其每个元素是(3,2)的矩阵,也就是(4,3)的矩阵嵌套一个(3,2)的矩阵

import numpy as np
a = np.random.randn(4,3,3,2)
print(a)

输出结果为

[[[[-2.26728458 -0.93044922]
   [-0.79551665 -0.94800901]
   [ 0.78514497  2.06200093]]

  [[-1.60940096 -0.24614001]
   [ 0.29647288 -0.29924968]
   [ 0.16358296  0.74884066]]

  [[ 1.09777908  1.49181953]
   [ 0.46415243  0.24711349]
   [-1.2020132   1.24691265]]]


 [[[-0.31466526 -0.72276109]
   [-0.81892115  1.06496607]
   [ 1.401888    0.59864402]]

  **[[-2.08980204  0.55446417]
   [ 1.41521024 -2.51285901]
   [ 0.39136998  1.00890537]]**

  [[-0.39626076  1.38580398]
   [-1.29230797 -1.69083911]
   [ 1.54104362  0.8584694 ]]]


 [[[-0.28891173 -2.07050353]
   [-0.36509318 -1.03264759]
   [ 0.96609009 -0.84523115]]

  [[-1.67746496  0.0796231 ]
   [-0.24992364 -0.49804146]
   [-0.79940273  0.88040293]]

  [[-1.41201124  0.23929839]
   [-0.78763281 -0.76797591]
   [-1.15122065  0.40700796]]]


 [[[-1.19984005 -1.81134743]
   [-0.72768683 -0.08521888]
   [ 0.5493634   1.275239  ]]

  [[-1.59056989 -0.97041589]
   [-0.74594324 -0.61091165]
   [-1.09071522  1.08896788]]

  [[ 0.68662254 -1.70185507]
   [-0.39004449 -0.47509404]
   [-0.11858611 -0.49051322]]]]

那么

b = a[1,1]
print(b)

输出结果为

[[-2.08980204  0.55446417]
 [ 1.41521024 -2.51285901]
 [ 0.39136998  1.00890537]]

b刚好是在(4,3)矩阵的(1,1)位置上(矩阵维数从0开始计)

使用切片来读取,例如[0,2:4]用来读取第一行中的第二和第三个数。逗号前的数字表示第0轴下标取值范围,逗号之后表示第1维下标取值范围,2:4就表示2-4之间
在切片中,逗号分隔的是维度,冒号按照 start:end:step来分隔,start:end左闭右开,当索引为负数时,代表从右向左从-1开始数的对应位置

参考博客:
numpy函数:[16]多维数组切片存取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值