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

如何将numpy ndarray的每个元素重复为双元素子数组?

解决NumPy数组元素重复的问题

嘿,这个需求用NumPy的内置方法就能轻松实现,我给你两种简单好用的方案:

方法一:使用np.repeat()

np.repeat()可以指定在某个维度上重复元素,我们只需要先给原数组增加一个新维度,再在这个新维度上重复两次即可:

import numpy as np

# 先用布尔值示例,你可以替换成实际的T、F值(比如字符串'T'/'F')
original_arr = np.array([[True, True, True, False], [False, False, True, False]])

# 新增一个维度后,在最后一维重复2次
result = np.repeat(original_arr[:, :, np.newaxis], repeats=2, axis=2)

print(result)

输出结果的形状是(2, 4, 2),和你想要的结构完全一致:

[[[ True  True]
  [ True  True]
  [ True  True]
  [False False]]

 [[False False]
  [False False]
  [ True  True]
  [False False]]]

方法二:使用np.tile()

np.tile()是对数组进行平铺复制,同样先新增维度,再在最后一维平铺两次:

import numpy as np

original_arr = np.array([[True, True, True, False], [False, False, True, False]])

# 对新增的维度进行2次平铺
result = np.tile(original_arr[:, :, np.newaxis], reps=(1, 1, 2))

这个方法和np.repeat()的效果完全一样,你可以根据自己的习惯选择。

小提示

如果之后需要调整每个元素的重复次数,只需要把代码里的2改成你想要的数字就行,无论是3次还是更多都适用,而且不管你的T、F是布尔值、字符串还是数字,这两个方法都能正常工作~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:00:20