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

如何在Python中创建2×2多维数组序列?现有代码生成单一大数组

解决创建2×2数组序列并按索引访问的问题

需求

要创建2×2数组的序列,能通过指定索引直接输出对应的2×2数组。

现有代码问题

你当前的代码使用np.append(axis=1)将所有2×2数组横向拼接,最终生成一个形状为(2, 2*N)的大数组(N是循环次数),无法通过单个索引直接取出独立的2×2数组块,不符合需求。

修正方案

有两种简单的实现方式,都能满足按索引访问单个2×2数组的需求:

方式1:用列表存储数组序列

列表是最直观的方式,直接将每个2×2数组作为元素存入列表,索引直接对应序列位置:

import numpy as np

# 初始化空列表存储2×2数组序列
H_seq = []
# 添加第一个2×2数组
H_seq.append(np.array(Ez_centre[0] * I_z))
# 循环添加后续数组
for i in range(1, img.shape[0]):
    H_seq.append(np.array(Ez_centre[i] * I_z))

# 示例:访问索引为0的2×2数组
print(H_seq[0])

方式2:用三维NumPy数组存储

如果需要保留NumPy数组的运算特性,可以将所有2×2数组堆叠成一个三维数组(形状为(N, 2, 2),N是序列长度):

import numpy as np

# 生成所有2×2数组并堆叠成三维数组
H_3d = np.stack([np.array(Ez_centre[i] * I_z) for i in range(img.shape[0])], axis=0)

# 示例:访问索引为k的2×2数组(k从0到img.shape[0]-1)
print(H_3d[k])

说明

两种方式都能让你通过索引值直接获取对应的2×2数组:

  • 列表方式更灵活,支持动态添加/删除元素;
  • 三维数组方式适合后续需要对整个序列进行批量NumPy运算的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 10:58:17