簡體   English   中英

對齊 N 維 numpy 數組

[英]Aligning N-dimensional numpy arrays

我將數據放在 numpy 數組中進行比較。 他們存儲數據的方式有時維度是亂序的。 例如,如果第一個數組的形狀為 (10, 20, 30, 40),則有時第二個數組的形狀為 (10, 20, 40, 30)。 我們可以假設維度的長度是唯一的。

有沒有一種簡單的方法可以在不知道維度數或維度長度的情況下將第二個數組的形狀轉換為第一個數組的形狀? 我想我可以用一長串 elif 語句和轉置操作來完成,但我希望有一種更清晰的方法可用。

使用shape.index找到每個軸需要的位置,然后使用 transpose 重新排序軸:

import numpy as np
A = np.ones((10, 20, 40, 30))
B = np.ones((10, 20, 30, 40))

new_order = [A.shape.index(i) for i in B.shape]
B = B.transpose(new_order)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM