[英]Stacking 2-d numpy arrays to get a 3-d array in python
我正在尝试堆叠一些 2-D arrays 以获得 python 中的 3-D 数组。 我这样做的动机是 plot 变量的空间依赖性: var(x,y)
其中x
和y
是两个不同的维度,对于不同的参数值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.