You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从8×8的numpy数组中提取创建3×5的小型numpy数组

从8x8 NumPy数组提取3x5子数组的实现方法

NumPy的二维切片是提取子数组最直接的方式,以下是具体操作步骤:

1. 准备基础环境与示例数组

先导入NumPy并创建一个8x8的测试数组(可替换为你自己的数组):

import numpy as np

# 创建8x8的示例数组,元素为0到63,按行排列
original_arr = np.arange(64).reshape(8, 8)

2. 用切片提取3x5子数组

NumPy的二维切片语法为 数组[行起始索引:行终止索引, 列起始索引:列终止索引],注意终止索引是左闭右开的——要提取3行,行范围的长度需为3;提取5列,列范围的长度需为5。

比如从第2行(索引1)开始取3行,从第1列(索引0)开始取5列,代码如下:

# 提取行索引1到4(共3行)、列索引0到5(共5列)的子数组
sub_array = original_arr[1:4, 0:5]

# 验证子数组形状
print(sub_array.shape)  # 输出 (3, 5)

3. 边界注意事项

要确保切片的终止索引不超过原数组的维度:

  • 原数组共8行,提取3行时,行起始索引最大为 8 - 3 = 5(5+3=8,刚好不越界)
  • 原数组共8列,提取5列时,列起始索引最大为 8 - 5 = 3

4. 提取非连续的行/列(可选)

如果需要提取非连续的行或列,可通过索引数组指定位置,比如提取第0、2、4行,第1、3、5、6、7列:

# 指定目标行和列的索引
selected_rows = [0, 2, 4]
selected_cols = [1, 3, 5, 6, 7]

sub_array_non_continuous = original_arr[selected_rows, selected_cols]

内容的提问来源于stack exchange,提问作者HybridRobotics

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 03:25:47