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

如何使用Numpy的hstack合并二维数组的第6列与第8列?

使用numpy.hstack合并数组的第6列和第8列

你当前的代码myarray1[:, 6:8]取的是第6列和第7列(numpy切片遵循左闭右开规则),而且单独传入这个二维数组给hstack其实没有意义——hstack的作用是合并多个数组,而非处理单个数组的切片。

要合并第6列(索引6)和第8列(索引8),需要分别取出这两个列,再用hstack完成合并。注意:单独取一列会得到一维数组,必须先转为二维列数组,否则hstack会把它们拼接成更长的一维数组,而非二维数组的两列。

正确实现示例

import numpy as np

# 示例数组:5行10列的随机数组
myarray1 = np.random.rand(5, 10)

# 方法1:用切片取单列(保持二维结构)后合并
Myarray1 = np.hstack((myarray1[:, 6:7], myarray1[:, 8:9]))

# 方法2:用[:, None]将一维列转为二维后合并
Myarray1 = np.hstack((myarray1[:, 6, None], myarray1[:, 8, None]))

# 方法3:用column_stack更简洁(自动处理一维转二维)
Myarray1 = np.column_stack((myarray1[:, 6], myarray1[:, 8]))

关键说明

  • myarray1[:,6:7]会返回一个(行数, 1)的二维数组,保证hstack能将两个列数组合并为(行数, 2)的目标数组。
  • 如果直接使用myarray1[:,6],得到的是一维数组,hstack会把两个一维数组合并成一个更长的一维数组,不符合合并列的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:11:05