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

不同列数的NumPy数组相乘及列追加问题求助

解决方法

首先你代码里的问题出在np.append的参数上,你传的[1],[5]完全不对,应该取array2的第三列,而且要保证维度和前面的数组匹配,不然会报错。

下面是正确的实现步骤:

  • 先定义示例数组(方便你测试):
import numpy as np

# 示例2×2的array1
array1 = np.array([[1, 2],
                   [3, 4]])
# 示例2×3的array2
array2 = np.array([[5, 6, 7],
                   [8, 9, 10]])
  • 截取array2的前两列并和array1做元素相乘:
# 截取前两列,切片结果本身就是numpy数组,无需再转
array2Slice = array2[:, :2]
WIParray3 = np.multiply(array1, array2Slice)
# 或者直接用 * 运算符,效果完全一致:WIParray3 = array1 * array2Slice
  • 获取array2的第三列,注意要保持二维结构(形状为(2,1)),这样才能和WIParray3(形状(2,2))在列方向拼接:
# 方法1:用切片[:, 2:3],直接得到2×1的数组
third_col = array2[:, 2:3]
# 方法2:用索引加reshape转换维度
third_col = array2[:, 2].reshape(-1, 1)
  • 拼接得到最终的array3:
# 用np.append实现拼接
array3 = np.append(WIParray3, third_col, axis=1)
# 或者用np.hstack,更直观的列拼接方式
array3 = np.hstack([WIParray3, third_col])

运行后得到的array3就是你要的结果:

array([[ 5, 12,  7],
       [24, 36, 10]])

总结一下,核心错误是np.append的第二个参数传错了,同时没注意数组维度的匹配,只要把第三列正确提取成二维数组,再执行拼接就没问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 21:50:12