[英]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.