可以說我有一些2D陣列a = np.ones((3,3))
的Python:彈力2D陣列轉換成3D基於對應與第三維陣列索引
欲這個數組伸入3米的尺寸。我有數組b
,與a
的大小相同,它提供了第3維中的索引,即a
中的每個對應元素都需要去。
我也有3D陣列c
,它充滿了NaNs。這是來自a
的信息應該放入的數組。剩下的空格是沒有得到「裝:可以保持NaN的
>>> a = np.ones((3,3))
>>> b = np.random.randint(0,3,(3,3))
>>> c = np.empty((3,3,3))*np.nan
>>>
>>> a
array([[ 1., 1., 1.],
[ 1., 1., 1.],
[ 1., 1., 1.]])
>>> b
array([[2, 2, 2],
[1, 0, 2],
[1, 0, 0]])
>>> c
array([[[ nan, nan, nan],
[ nan, nan, nan],
[ nan, nan, nan]],
[[ nan, nan, nan],
[ nan, nan, nan],
[ nan, nan, nan]],
[[ nan, nan, nan],
[ nan, nan, nan],
[ nan, nan, nan]]])
所以,在上面的例子中,我想用C [0,0,2] = 1
結束了。我知道我可能有一些嵌套循環做到這一點,但最好我要以更有效的/量化的方式完成這件事
兩者都可以工作,但是這種方法比喬納斯·阿德勒的方法更快。你能解釋一下到底發生了什麼嗎? – hm8
@ user3826115:B提供第三維的索引 - 「arange」提供另外兩個索引。 – Eric