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

如何在Python中从(N×1)数组生成(N×N)数组

嘿,这个需求很直观,我给你两种实用的解决方案,分别适配纯Python列表和numpy数组的场景:

方法一:纯Python列表实现

如果你的数组是普通的Python列表结构,用列表推导式就能轻松搞定,代码简洁又易懂:

a = [[1], [2], [3], [4], [5]]
n = len(a)  # 自动获取N的值,不用硬编码
result = [row * n for row in a]
print(result)

原理很简单:row * n会把每个子列表里的元素重复n次,比如[1] * 5就会变成[1, 1, 1, 1, 1],遍历原数组的每一行处理后,就得到了你要的N×N数组。

方法二:用numpy库实现(更适合数值计算场景)

如果是做数据分析或者数值计算,用numpy会更高效,推荐两种方式:

import numpy as np

a = np.array([[1], [2], [3], [4], [5]])
n = a.shape[0]

# 方式1:利用numpy的广播特性横向拼接
result = np.hstack([a] * n)

# 方式2:用tile函数直接重复数组
result = np.tile(a, (1, n))

print(result)
  • np.hstack是把多个相同的数组横向堆叠在一起;
  • np.tile则是指定重复的次数,(1, n)表示纵向不重复,横向重复n次,两种方式都能得到你想要的N×N形状的数组,特别适合处理大规模数值数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 20:22:32