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

如何在Numpy中提取指定行,将8×6数组转换为目标4×6数组?

解决方案

你的问题出在切片的起始位置与步长设置上,data[::2]会从第0行开始每隔一行取一行,拿到的是索引0、2、4、6的行,和预期结果不符。以下是两种正确的实现方式:

方法1:直接指定目标行索引

通过索引列表直接选取需要的行(原始数组的第3、4、7、8行,对应索引2、3、6、7):

import numpy as np

data = [
    [76,34,56,32,55,66],
    [99,23,11,34,45,32],
    [87,98,87,23,12,77],
    [78,98,89,28,91,72],
    [76,42,45,23,56,87],
    [81,22,34,42,81,23],
    [91,23,45,67,45,34],
    [87,98,23,45,23,55]
]

data = np.array(data)
result = data[[2, 3, 6, 7]]
print(result)

方法2:切片拼接

先分别取从索引2、3开始,步长为4的行,再将结果沿行方向拼接:

import numpy as np

data = [
    [76,34,56,32,55,66],
    [99,23,11,34,45,32],
    [87,98,87,23,12,77],
    [78,98,89,28,91,72],
    [76,42,45,23,56,87],
    [81,22,34,42,81,23],
    [91,23,45,67,45,34],
    [87,98,23,45,23,55]
]

data = np.array(data)
result = np.concatenate([data[2::4], data[3::4]], axis=0)
print(result)

两种方法都能得到你想要的4×6数组:

array([[87, 98, 87, 23, 12, 77],
       [78, 98, 89, 28, 91, 72],
       [91, 23, 45, 67, 45, 34],
       [87, 98, 23, 45, 23, 55]])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 11:35:20