繁体   English   中英

堆叠二维 numpy arrays 以获得 python 中的 3 维数组

[英]Stacking 2-d numpy arrays to get a 3-d array in python

我正在尝试堆叠一些 2-D arrays 以获得 python 中的 3-D 数组。 我这样做的动机是 plot 变量的空间依赖性: var(x,y)其中xy是两个不同的维度,对于不同的参数值param 下面附上了一个最小的可重现示例:

while (param<=2):
 var(x,y)= fun  # fun is a function which returns var(x,y) as mentioned above
 param+=1

我想继续沿第三维堆叠不同参数值的二维 arrays var(x,y) 我的 output 应采用以下形式:- For param=0: var(x,y), For param=1: var(x,y), For param=2: var(x,y) 任何有关构建 3-D 阵列的帮助将不胜感激。 请注意var(x,y) 是一个二维数组。

正如 hpaulj 所建议的,关键思想是拥有一个 2D arrays 的列表,然后将它们组装成一个 3D 阵列。 在一个 go(无附加)中创建数组通常更有效,因此以下应该是理想的:

import numpy as np

var_lst = []  # This is where you store the var arrays
while (param<=2):
    var = fun  # fun is a function which returns var(x,y) as mentioned above
    var_lst.append(var)
    param+=1

# Creates a 3D array with the following axes (x, y, param)
var_arr = np.stack(var_lst, 2)

# If later you want different axes, like (param, x, y), you can always swap them around with transpose
var_arr = var_arr.transpose(2, 0, 1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM