簡體   English   中英

重塑numpy中的矩陣

[英]Reshaping matrix in numpy

我目前正在嘗試將三角矩陣重塑成這樣的不同形式

              S&P 500   Russel 2000     Nasdaq Composite
S&P 500             1             0     0
Russel 2000         4             5     0
Nasdaq Composite    7             8     9

    0                           1                  
0   S&P 500                     S&P 500      
1   Russel 2000                 S&P 500
2   Nasdaq Composite            S&P 500
3   S&P 500                     Russel 2000
4   Russel 2000                 Russel 2000
...

也就是說,我正在嘗試為每個索引創建重復的列,反之亦然。

我使用了一種稱為J的面向數組的語言,但是對於python numpy來說,我還是一個新手。 你們能幫我解決這個問題嗎?

在此先感謝=]

首先,這看起來是熊貓更容易解決的問題。

我已經進行了設置,可能會有所幫助,但是如果您真的不喜歡使用Numpy,那么它將不是解決問題的適當方法。

首先,我為您的numpy數組設置了類似的DataFrame對象:

$ import pandas as pd
$ df = pd.DataFrame(columns=['a','b','c'], index=['a','b','c'])
    a    b    c
a  NaN  NaN  NaN
b  NaN  NaN  NaN
c  NaN  NaN  NaN

然后,盡管我沒有使用它們,但仍用您要求的值填充了它。

$ df['a'] = [1, 4, 7]
$ df['b'] = [0, 5, 8]
$ df['c'] = [0, 0, 9]
   a  b  c
a  1  0  0
b  4  5  0
c  7  8  9

最后,我只是簡單地獲取了索引和列,並使用了itertools中乘積函數將每個組合添加到元組列表中。

$ from itertools import product
$ p = product(df.columns.values, df.index.values)
$ new_df = pd.DataFrame([i for i in p])
   0  1
0  a  a
1  a  b
2  a  c
3  b  a
4  b  b
5  b  c
6  c  a
7  c  b
8  c  c

我會看一下Pandas文檔。 它們具有許多功能,可以按您感興趣的方式操作數據框。

暫無
暫無

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

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