簡體   English   中英

從 numpy 數組 python 創建一個三維矩陣

[英]create a three dimension matrix from a numpy array python

標題本質上,我有這個數組

       i   j  d  Uijd
0      1   1  0     1
1      1   1  1     1
2      1   1  2     2
3      1   1  3     1
4      1   1  4     1
...   ..  .. ..   ...
1570  15  15  2     1
1571  15  15  3     1
1572  15  15  4     1
1573  15  15  5     0
1574  15  15  6     2

i 和 j 分別是起源和命運,d 是那一天,我想制作一個三維矩陣並將其稱為 U[i,j,d],但我不知道如何。 我嘗試使用 pandas 但我不知道如何使用它

我對 python 很陌生,所以我一無所知

提前致謝

假設 DataFrame 作為輸入、排序和非缺失索引,您應該能夠使用進行reshape

U = df['Uijd'].to_numpy().reshape(15, 15, 7)

對於更通用的方法,您可以使用nunique從 DataFrame 中提取形狀:

U = df['Uijd'].to_numpy().reshape(df[['i', 'j', 'd']].nunique())

選擇

如果您真的希望能夠運行U[i, j, d]或處理缺失的組合,另一種方法是設置一個空數組並分配值:

U = np.zeros(df[['i', 'j', 'd']].max()+1, dtype=df['Uijd'].dtype)

U[tuple(zip(*df[['i', 'j', 'd']].values))] = df['Uijd']

U.shape
# (16, 16, 7)

U[15, 15, 6]
# 2

暫無
暫無

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

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