簡體   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