[英]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.